ホームページ >データベース >mysql チュートリアル >SqlBulkCopy を使用してオブジェクトのリストから SQL Server への一括挿入を効率的に実行するにはどうすればよいですか?
オブジェクトのリストから SqlBulkCopy を使用して一括挿入を行う
SqlBulkCopy は、SQL Server に効率的にデータを挿入するための強力なツールです。多数のオブジェクトを処理する場合、この機能を利用するとパフォーマンスが大幅に向上します。データが List<> に保存される場合、潜在的な課題が 1 つ発生します。
カスタム IDataReader の実装
1 つのオプションは、データを公開するカスタム IDataReader を実装することです。リスト<> SqlBulkCopy と互換性のある形式で。ただし、このアプローチは時間とリソースを大量に消費する可能性があります。
FastMember を使用した代替アプローチ
効率と使いやすさが向上した代替ソリューションは、FastMember です。このライブラリを使用すると、List<> の直接変換が可能になります。 SqlBulkCopy で使用できる形式に変換します。
using(var bcp = new SqlBulkCopy(connection)) using(var reader = ObjectReader.Create(data, "Id", "Name", "Description")) { bcp.DestinationTableName = "SomeTable"; bcp.WriteToServer(reader); }
このコード スニペットでは、FastMember の ObjectReader コンポーネントが List<>> を変換します。オブジェクトを SqlBulkCopy に準拠したデータ ストリームに変換します。必要な列マッピング (「Id」、「Name」、「Description」など) を指定することで、データ転送プロセスを必要に応じてカスタマイズできます。
ObjectReader を使用する利点
ObjectReader を使用する利点は次のとおりです。
以上がSqlBulkCopy を使用してオブジェクトのリストから SQL Server への一括挿入を効率的に実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。