私は週末に、基本的に次のことを行う顧客のC#プログラムを分析しました。
ほとんどの場合、(1)と(2)はストアドプロシージャコールによって行われます。 SSISは、このプロセスの処理においてより効率的になると思います。私の最終結果は、SSISがより良い仕事をすることができるかどうかを決定し、次にパッケージを設計する最も効率的な方法です。
質問
レコードが多数ある場合、(2)と(3)が同じインスタンス上の同じデータベースであるときに、BULK INSERTタスクを使用するとSSISのパフォーマンスが向上しますか?または、(2)のプロシージャコールをINSERT INTO
に変更して、(3)の必要性を排除しますか?
(2)がリモートソース(同じネットワーク上の別のSQLインスタンス)である場合、SSISはリモートソースからのデータのプルを.NET SQLClient経由で行うよりも効率的に処理しますか?大きな違いはないと思います。
また、(2)がリモートソースであり、かなり大量のデータ(800万以上)である場合、リモートインスタンス上のパッケージにデータをエクスポートさせることをお勧めします。次に、そのファイルを移行先サーバーに移動して、一括読み込みしますか?
800万行の場合、SSISとSQLBulkCopyクラスの間に大きな違いはないと思います。 SSISでは、OLE DB Destinationで高速ロードオプションを使用していることを確認する必要があります。それ以外の場合は確実に遅くなります。ソースがローカルの場合、SQL Serverを試すことができます。宛先、それはOLE DB宛先よりも少し速いかもしれません。