質問: 私は、データをSQL BulkCopyまたはOLEDBを使用してOPENDATASOURCEを挿入する最も速い方法であるアクセス.mdbファイルからsqlserverにデータを挿入したいと思います。 データは、約20のテーブルに対して100,000のレコードのようになります。 ありがとう。 私はこれをC#のコードから実行していますが、OPENATASOURCEが管理者権限を要求しているため、どちらがうまくいくのでしょうか、私は比較できません。
回答: 私の意見では、SQL Bulk Copyを使用することで、大量のデータを挿入するための最適な挿入パフォーマンスを得ることができます。これは、SQLクエリ言語を完全にバイパスし、データをSQLに直接ストリームするためです。 **さらなるパフォーマンスの向上** * 既定では、SqlBulkCopyは一括コピー操作中に行ロックを使用します。 SqlBulkCopyOptionsのTableLockオプションが指定されている場合、一括コピー操作の間、一括更新ロックが取得され、パフォーマンスが向上します。 * クラスタ化されたテーブル:実行可能な場合は、クラスタ化インデックスを削除するのが最善の方法です。 * インデックス:インデックスは並列性に大きな問題を引き起こすので、インデックスをアクティブにすることなくロードすることは常に良い考えです ホワイトペーパー:SqlBulkCopyのパフォーマンスの詳細については、 http ://www.sqlbi.com/wp-content/uploads/SqlBulkCopy-Performance-1.0.pdfを参照してください。