約 10 GB の SQL Server 2008 データベースの場合、トランザクション ログのサイズが約 70 GB に増大するという問題があります。これは、SSIS 2008 で実行される ETL プロセスのステージング データベースで発生します。このプロセスは完了するまでに約 8 時間かかり、毎週実行されます。
70 GB はシステムの物理的限界に近づいており、IO だけでパフォーマンスが低下します。
ETL は実行のたびに最初からやり直し、プロセスの失敗時に以前のデータベース バックアップを復元するため、ステージング データベースの復旧にログを使用することはありません。この時点で、増分 ETL プロセスを実装するのは困難です。これは、実行ごとに構成が変更され、計算の多くまたはすべてが変更される可能性があるためです。
データベースの復旧モデルはシンプルに設定されています。SISS には、ステージング データベースへの排他的アクセスを許可できます。
SISS を微調整することで何が期待できるのだろうか。
いくつかの考慮事項:
- SISS によってデータベースへの複数の接続が確立されているようです。これは、パッケージのトランザクション分離レベルとトランザクションの「長さ」を調整すること、つまり特定のステップが完了した後にコミットすることをどのように妨げる可能性がありますか?
- シングル ユーザー モードで実行すると、プロセスのパフォーマンスが向上しますか? SISSはそれに対処できますか?
- Transaction = Unsupported を設定して実行するようにパッケージを構成するのが賢明でしょうか?
この問題に関する経験、考え、または推奨事項はありますか?