1

SQL サーバーに大量のデータを挿入するためのさまざまな方法を評価しています。Ado.Net のSqlBulkCopyクラスとOLEDB のIRowsetFastLoadインターフェイスを見つけました。私の知る限り、IRowsetFastLoad は私のベース プラットフォームである C# にマップされていないため、.net 用の IRowsetFastLoad のラッパーを作成する価値があるかどうかを評価しているので、アプリケーションで使用できます。

IRowsetFastLoad が実際に SqlBulkInsert よりも優れたパフォーマンスを発揮するかどうかは誰にもわかりません。そのようなラッパーを作成する価値はありますか?

4

1 に答える 1

2

SqlBulkCopyは と同等の管理対象でありIRowsetFastLoad、同様に実行する必要があります。クライアントでは、原則として、OleDB はバインドが利用できるため、ADO.Net よりも高速です。これにより、API との間のデータの高速転送が可能になります (バッファーが事前に既知であり、固定され、事前であるため、必要な memcopy は少なくなります)。 -割り当て済み)。ADO.Net ははるかに簡単なプログラミング モデルを提供しますが、コピーなしで ADO.Net からデータを取得することはできません。しかし、最も重要なアクセス以外のすべてのアクセスについては、違いを測定することは不可能です。

重要な違いであるサーバー アクセスに関しては、どちらも高速読み込みINSERT BULKAPI (ストレート T-SQL からは利用できません) を使用し、それが本当に重要です。

于 2010-11-19T23:56:30.400 に答える