3

大量のデータをデータベースに挿入したい場合、どちらの方法がより効率的ですか?1. insertステートメントを呼び出してデータを1行ずつ挿入します。2。データベースにユーザー定義のテーブルタイプを作成し、データベースにDataTableを挿入するためのストアドプロシージャを記述します。なぜ?

4

3 に答える 3

1

最も効率的なのは SQL Bulk Insertです。

パフォーマンスをさらに向上させるには、SqlBulkCopy to SQL Server in Parallelを使用できます。

于 2012-12-13T10:49:17.003 に答える
0

これは、特定のワークロードによって異なる可能性があります。

ここでは、どのオプションが利用可能かを説明するだけです。特定のケースで各オプションがどれほど効率的であるかを測定するのはあなた次第です。

オプション:

  • SQLBulkCopy
  • INSERT単一行のステートメント
  • INSERT複数行のステートメント (行数を変えて実験)
  • ストアド プロシージャ (上記のバリエーションあり)
于 2012-12-13T10:02:11.370 に答える
0

2 は、行ごとの操作 ( RBAR ) を含むものは本質的に遅いため、はるかに高速です。テーブル値のパラメーターを使用してかなり多くのテストを行い、最大 1,000,000 行のバッチ サイズの一括挿入のパフォーマンスに近いことがわかりました。ただし、これは単なる逸話であり、走行距離は異なる場合があります。

また、 a を使用しないことをお勧めしDataTable、行をより直接的にストリーミングするものを作成します。私はそれについてここにブログを書きました。

于 2012-12-13T10:02:15.560 に答える