2011-01-27 10 views
1

SqlBulkCopyを実装してパフォーマンスをテストする前に、いつ使用するべきか、比較的小さなデータセット(1000行程度)でも使用することをお勧めしますか?この状況でそれを使用する上でオーバーヘッドはありますか、それとも、妥当な数の行を挿入するときに私はいつも使用するべきですか?SqlBulkCopy - 小さなデータセット(つまり1000行)に便利ですか?

答えて

1

私はおそらくになります。これは1000行になりますが、コマンドバッチ処理でと同じようにを実行できます。

1000行の場合、最も簡単な方法は、希望のデータを正しい形状のDataTableに投げることです。かなり簡単です。より大きなセットの場合は、予約されたIDataReader(メモリを最初にすべてバッファリングするのではなく、レコードをストリーミングするため)を書いてください。

他に見るものは取引、耐久性などです。 SqlBulkCopyを使用している場合は、ステージングテーブルにプッシュするためにこれを使用し、実際のテーブルにデータをプッシュするためにsproc(または単純なTSQLコマンド)を呼び出します。これにより、の実テーブルは、単一のセットベースの(そして完全にログに記録された)INSERTを除き、きれいに保たれます。

しかし、パフォーマンスを測定したいだけの場合は、実際のテーブルに投げて球場推定をする必要があります。

1

SqlBulkCopyはトランザクションログに書き込みを行わないため、各行を手動で挿入するよりも高速に処理できます。

1000行であっても、特にWebアプリケーションなどのアクセス頻度が高い操作の場合は、速度が向上するはずです。

関連する問題