私はそのようなSQL更新文を持っています
UPDATE t1 SET t1.Field = t2.Field
FROM Table1 as t1
INNER JOIN Table2 as t2 on t1.Key = t2.Key
WHERE t2.FilterField = 'abc'
where 句により、行が更新されないように、ステートメントが 30 分間実行されます。(テーブルには 5000 万行あります)
ステートメントを次のように変更すると、何が奇妙になりますか
SELECT t1.Field, t2.Field
FROM Table1 as t1
INNER JOIN Table2 as t2 on t1.Key = t2.Key
WHERE t2.FilterField = 'abc'
空の結果セットがほぼ瞬時に返されます
ステートメントを次のように変更すると、
UPDATE t1 SET t1.Field = 1
FROM Table1 as t1
約 3 秒でテーブルを更新します。
レコードを更新していない更新ステートメントでSQL Serverが何を詰まらせているのか、私は本当に混乱しています。