select Item
into #transferTheseItems
from IDTable where id = @myCondition
if exists (select 1 from #transferTheseItems)
/*
insert this huge data to a remote database over linked server
*/
Obwohl es keinen Eintrag im Temp gibt, dauert die Abfrage zu lange, um ausgeführt zu werden.Optimierung der bedingten Anweisung in SQL
Ich habe auch versucht,
if not exists (select 1 from #transferTheseItems)
return
aber nichts geändert.
Ich denke, der SQL-Server versucht, den Teil zu analysieren, den es nie ausführen wird.
Gibt es eine Möglichkeit, dies zu überspringen?
Sind Sie sicher, dass das Ding, das Zeit nimmt, nicht das SELECT INTO ist? – erikkallen
Wählen Sie in dauert keine Zeit. Es gibt eine riesige Abfrage nach der if-Anweisung. Das Problem ist, obwohl die Bedingung falsch ist, dauert es zu lange, um auszuführen. Ich denke, SQL Server versucht, die Abfrage zu kompilieren, die nie ausgeführt wird. – fkucuk