SQL BulkCopy対OPENDATASOURCEどちらが速いか

.net c# sqlbulkcopy sql-server

質問

私は、データを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を参照してください。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ