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

SQL Server 2005 – Reihenfolge der inneren Verknüpfungen

SQL ist deklarativ, das heißt, die JOIN-Reihenfolge sollte keine Rolle spielen.

In der Praxis kann es jedoch passieren, wenn es sich beispielsweise um eine komplexe Abfrage handelt, wenn der Optimierer nicht alle Optionen untersucht (was theoretisch Monate dauern könnte).

Eine andere Option ist, dass es eine ganz andere Abfrage ist, wenn Sie neu ordnen und andere Ergebnisse erhalten, aber dies ist normalerweise bei OUTER JOINs der Fall.

Und es könnte auch die Art und Weise sein, wie die ON-Klausel angegeben ist. Sie muss sich ändern, wenn Sie die FROM-Klausel neu anordnen. Es sei denn, Sie verwenden die ältere (und schlechte) JOIN-in-the-WHERE-Klausel.

Wenn Sie schließlich Bedenken haben, können Sie die Auswertungsreihenfolge mit Klammern ändern, um Ihre Absichten deutlich zu machen, z. B. zuerst nach einer großen Tabelle filtern, um eine abgeleitete Tabelle zu generieren.