Ich möchte sehen, ob es möglich ist, die folgende Abfrage zu verbessern, die eine WHERE NOT EXISTS verwendet?Wie zu verbessern WHERE NOT EXISTS von einer INSERT-Anweisung
Ich möchte Datensätze aus einer anderen Tabelle zu einem neuen in Chargen von 500 hinzufügen, wo der Schlüssel in einer temporären Tabelle ist, es funktioniert, aber möchte seine Leistung verbessern, wenn möglich.
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
Vielen Dank!
ich durch eine Erhöhung der Losgröße beginnen würde. 500 Reihen sind furchtbar klein. Ich würde denken, 10k wäre um den Wendepunkt, um schnelle, aber nicht zu viele Iterationen abzuschließen. –
Wie viele Zeilen haben Sie in #TempTable? – FLICKER
#TempTable hat 7072 Datensätze – Billy