私はこれをスピードアップする方法を考えることができません。テーブルスキャンをしていますが、私はすべてのレコードを更新する必要があるからです。この単純なクエリのパフォーマンスを向上させる方法はありますか?
問題は、このテーブルには約3,000万のレコードがあることです。
実行には約50分かかります。誰でも私はこれを改善する方法についてのヒントがありますか?それはどこにも使用されていないので、
update A
set A.product_dollar_amt = round(A.product_dollar_amt, 2),
A.product_local_amt = round(A.product_local_amt, 2),
A.product_trans_amt = round(A.product_trans_amt, 2)
from dbo.table A
テーブルには、現在、ヒープ(クラスタ化インデックスなし)です...ではないクラスタ化インデックスを作成すると、ここで何を改善するか確認します。
更新をバッチで行うのはどうですか? –
どうしたら違うのですか? –
sp_WhoIsActiveを使用してクエリを監視し、異常な待機が発生していないかどうかを確認できます。また、この結果を_different_表にロードして名前を変更することもできます(または別のスキーマに移動することもできます)。その後、変更は瞬時に行われるように見えますが、3,000万レコードで2つのテーブルを格納する必要があります。 –