全体的なパフォーマンス プロジェクトの一環として、ファクト テーブルの読み込みを高速化しようとしています。テーブルは約 1 億 2000 万行で、毎晩約 10 万行が追加されます。テーブルにはかなりのインデックスが作成されています。
現在、SSIS Fast Load OLE DB 宛先を使用しており、100,000 行の読み込みに約 15 分かかります。これは 10 万行を挿入するには非常に高いように思えたので、パッケージを変更して結果をステージング テーブルにダンプし、そのステージング テーブルからファクト テーブルに T-SQL を挿入しました。挿入は 1 分未満で実行されるようになりました。
単純な古い T-SQL 挿入が SSIS Fast Load よりも高速であるというのは非常に奇妙に思えたので、OLEDB 変換先でどのボックスがチェックされているかを調べ始めました。Table Lock がチェックされていないことがわかりました。このオプションをオンにすると、SSIS の負荷が 1 分未満になりました。私の質問は次のとおりです。
- Table Lock をオンのままにしておくと、どのような影響がありますか?
- T-SQL の挿入ステートメントは既定でテーブル ロックを発行するのでしょうか。