SqlBulkCopy - 小さなデータセット(つまり1000行)に便利ですか?

.net performance sqlbulkcopy

質問

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

受け入れられた回答

私はおそらく1000行のためにそれを使用していますが、コマンド・バッチ処理と似た何かを行うことができます。

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

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

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


人気のある回答

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

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



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