次の設計の SSIS パッケージがあります。
- パッケージには、同じテーブルからデータを読み取り、20 の異なるテーブルに読み込む 20 のデータ フロー タスクがあります。
- MaxConcurrentExecutable は 6 に設定されているため、6 つのタスクを並行して実行します。
- RetainSameConnection が true に設定されているすべてのソース コンポーネントに対して単一の接続マネージャーがあります。
- それぞれの宛先で使用される 20 の追加の接続マネージャーがあります。
- ソースと宛先は同じ SQL Server データベース上にあります。SSIS は別のサーバーで実行されます。データベースと SSIS サーバーはどちらも 4cpu と 8gb RAM です。
これは非常にゆっくりと実行されています。sp_who2 を見ると、ソースから読み取る選択クエリ (spid) が中断され、それ自体がブロックされることがあり、宛先への一括挿入を行う spid がコマンドを待機していることに気付きます。
なぜこれが起こっているのか誰にも教えてもらえますか?これを最適化するにはどこを調べる必要がありますか (データベースのパフォーマンス、ハードウェアなど)?
私はあなたの助けに感謝します。ありがとう!