SSISパッケージの設計が不十分なため、実行は遅くなります。ドキュメント「SSIS設計のベストプラクティス」を参照してください。
あなたのパッケージにある間違いを説明させてください。
1.ブロッキングトランスフォーメーション(ソートコンポーネント)を使用しています。これらのトランスフォーメーションは入力バッファーを再利用しませんが、出力用の新しいバッファーを作成します。ほとんどの場合、ルックアップ、派生列などの同期コンポーネントよりも低速で、入力バッファ。MSDNによると
Do not sort within Integration Services unless it is absolutely necessary. In
order to perform a sort, Integration Services allocates the memory space of the
entire data set that needs to be transformed. If possible, presort the data before
it goes into the pipeline. If you must sort data, try your best to sort only small
data sets in the pipeline. Instead of using Integration Services for sorting, use
an SQL statement with ORDER BY to sort large data sets in the database – mark
the output as sorted by changing the Integration Services pipeline metadata
on the data
source.
2.マージ結合はsemi-blocking transformation
、パフォーマンスを低下させますが、Blocking transformation
問題を解決する方法は2つあります
- ルックアップを使用する
SQLタスクの実行を使用してSQLのマージを記述します
DECLARE @T TABLE(ID INT);
Merge @TableA as target
using @TableB as source
on target.ID=source.ID
when matched then
Delete OUTPUT source.ID INTO @T;
DELETE @TableA
WHERE ID in (SELECT ID
FROM @T);