Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL-Joins im Vergleich zu SQL-Unterabfragen (Leistung)?

Ich würde ERWARTEN, dass die erste Abfrage schneller ist, hauptsächlich weil Sie eine Äquivalenz und einen expliziten JOIN haben. Meiner Erfahrung nach IN ist ein sehr langsamer Operator, da SQL ihn normalerweise als eine Folge von WHERE auswertet durch "OR" getrennte Klauseln (WHERE x=Y OR x=Z OR... ).

Wie bei ALL THINGS SQL kann Ihre Laufleistung jedoch variieren. Die Geschwindigkeit hängt unter anderem stark von den Indizes ab (haben Sie Indizes für beide ID-Spalten? Das wird sehr hilfreich sein ...).

Die einzige WIRKLICHE Möglichkeit, mit 100%iger Sicherheit zu sagen, was schneller ist, besteht darin, die Leistungsverfolgung zu aktivieren (IO-Statistiken sind besonders nützlich) und beide auszuführen. Stellen Sie sicher, dass Sie Ihren Cache zwischen den Läufen leeren!