質問: 私はそれに1から200 +オーダーを持つことができる注文システムに取り組んでいます。今は、各注文をループしてデータベースに挿入するループがあります。 SqlBulkCopyを使用するのは理にかなっていますか?小規模な注文でパフォーマンスを低下させるでしょうか?インサートを高速化する他のテクニックはありますか? ありがとう!
回答: 基本的に、あなたができることがいくつかあります。 * `SqlBulkCopy.WriteToServer`を使用してい`SqlBulkCopy.WriteToServer`これはEFと一緒にはうまく機能しませんが、拡張機能を作成する試みがいくつかあります * 1つの大きなレコードを取得し、いくつかのロジックに従って分割するストアドプロシージャを使用する * テーブル型のストアドプロシージャパラメータを使用して、ストアドプロシージャ(および複数の`insert ... select`ストアドプロシージャ内の`insert ... select` )を1回呼び出し`insert ... select` 全体的に、私は3番目のオプションを好む。 この質問を確認するEntity Frameworkストアドプロシージャテーブル値パラメータ