SQL Server IN vs. EXISTS Leistung

Ich bin gespannt, welche der unten folgenden noch effizienter wäre?
Ich war schon immer ein wenig vorsichtig über die Verwendung von IN weil ich glaube, dass SQL Server wandelt das ResultSet in eine große IF - Anweisung. Für ein großes ResultSet dies könnte dazu führen, schlechte Leistung. Für kleine Resultsets, ich bin mir nicht sicher, entweder ist vorzuziehen. Bei großen Ergebnismengen, wäre das nicht EXISTS effizienter sein?

WHERE EXISTS (SELECT * FROM Base WHERE bx.BoxID = Base.BoxID AND [Rank] = 2)

vs.

WHERE bx.BoxID IN (SELECT BoxID FROM Base WHERE [Rank = 2])

InformationsquelleAutor der Frage Randy Minder | 2010-01-14

Schreibe einen Kommentar