I 900万件のレコードを持つデータベースのテーブルを持っています。私は、それらをディメンションに参加させ、ファクトテーブルのキーをディメンションのキーに設定することによって、そのテーブルの4つの異なるキーを更新する必要がある状況にあります。私は4つの異なるSQLスクリプト(下記の例を参照)を書いて更新を行っていますが、実行には時間がかかりすぎてしまうという問題があります。クエリは20時間以上実行されており、どのくらいの時間がかかるか、またどれくらいかかるかについてはわかりません。これを改善するための方法はありますか?完了までに数時間しかかかりません。インデックスを追加するとこれが改善されますか?SQL - 大規模なテーブルの更新クエリのパフォーマンス(9億)レコード
UPDATE f
SET f.ClientKey = c.ClientKey
FROM dbo.FactSales f
JOIN dbo.DimClient c
ON f.ClientId = c.ClientId
あなたは900,000,000行のテーブルに対してこれを実行する前に、小さなサブセットにテストしていませんか?ああ。最悪の場合は、更新された列のインデックスになります。私は新しいテーブルを作成し、その中に4つのすべての結合を持つ単一のSelectを作成し、挿入/選択、ドロップ&名前を変更することを好みます。 – dnoeth
@DuduMarkovitzが正しい –