テーブルの 700,000 レコードすべてに対してクエリを実行する ADO NET ソース コンポーネントがあります。
これは、SQL Server Destination コンポーネントに接続されています。
最初の 100,000 レコードを処理するのに 23 秒 (+ - 1 秒) かかります。
次の 100,000 レコードにはさらに 50 秒かかります。そして、それは悪化するだけです。
以下、仕様と詳細です
宛先データベースで、次の 3 つの異なるコマンドを既に試しました。
ALTER DATABASE AdamDB SET RECOVERY SIMPLE;
ALTER DATABASE AdamDB SET RECOVERY BULK_LOGGED ;
ALTER DATABASE AdamDB SET RECOVERY FULL ;
3 つのケースすべてで、時間は最初の 100,000 レコードで 23 秒のままでした。
ID値に基づいて条件付き分割コンポーネントを入れてみました
Default
SKU % 4 < 1
SKU % 4 < 2
SKU % 4 < 3
各出力条件には異なる SQL Server 宛先があり、宛先ごとに異なる接続マネージャーを作成することさえしました。
これのどれも、パフォーマンスに目立った影響を与えていないようです。
これがソース接続マネージャーです
ソース オブジェクトのプロパティは次のとおりです。
そして、これが宛先の接続マネージャーです
ここに私の宛先オブジェクトのプロパティがあります。
どうすればこれをスピードアップできますか?
編集
Lamak の提案から、SQL Server Destination の代わりに OLE DB Destination を使用してみました。これは、速度の結果は同じで、時間の経過とともに遅くなるようです。