質問: SQL Serverに大量のデータを挿入するためのさまざまな方法を評価しています。私はOLEDBからAdo.NetとIRowsetFastLoadインターフェイスからSqlBulkCopyクラスを見つけました。私の知る限り、IRowsetFastLoadは私のベースプラットフォームであるC#にはマッピングされないので、IRowsetFastLoadの周りにラッパーを作成する価値があるかどうかを評価しています。 IRowsetFastLoadがSqlBulkInsertよりも実際に優れたパフォーマンスを発揮するかどうかは誰にでも分かります。このようなラッパーを作成する価値はありますか?
回答: `SqlBulkCopy`の管理と同等である`IRowsetFastLoad` 、彼らは同様に実行する必要があります。クライアントでは、一般的なルールとして、OleDBはADO.Netよりも高速であり、バインディングの可用性のために、APIの内外へのデータの転送が高速になります(バッファは先行、固定、割り当てられた)。 ADO.Netははるかに簡単なプログラミングモデルを提供しますが、ADO.Net w / oaコピーからデータを取得することはできません。しかし、最も重要なアクセスを除いて、その違いは測定不可能でなければなりません。 違いは、サーバーへのアクセスでは、両方とも高速ロード`INSERT BULK` API(ストレートT-SQLでは使用できません)と、実際に重要なことを使用します。