WHERE NOT EXISTSを使用している以下のクエリを改善することができますか?INSERTステートメントから存在しないWHERE NOT EXISTS
キーがテンポラリテーブルにある場合、バッチ数500の別のテーブルのレコードを別のテーブルに追加したいのですが、それは機能しますが、可能であればパフォーマンスを向上させたいと考えています。
WHILE 1 = 1
BEGIN
INSERT INTO newTable WITH (TABLOCK)
SELECT TOP(500) *
FROM srcTable src
WHERE NOT EXISTS (SELECT 1 FROM newTable WHERE pKey = src.pKey
AND src.pKey IN (SELECT pKey FROM #TempTable))
IF @@ROWCOUNT < 500 BREAK
END
ありがとうございます!
というバッチサイズを増やすことから始めます。 500行は非常に小さいです。私は10kが速すぎる反復ではなく、余りにも多くの反復を終わらせるという転倒点の周りにあると思うだろう。 –
#TempTableにいくつの行がありますか? – FLICKER
#TempTableに7072レコードがあります – Billy