Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server 2005 - Ordre des jointures internes

SQL est déclaratif, c'est-à-dire que l'ordre JOIN ne devrait pas avoir d'importance.

Cependant, cela peut en pratique, par exemple, s'il s'agit d'une requête complexe lorsque l'optimiseur n'explore pas toutes les options (ce qui, en théorie, pourrait prendre des mois).

Une autre option est qu'il s'agit d'une requête très différente si vous réorganisez et que vous obtenez des résultats différents, mais c'est généralement avec des OUTER JOINs.

Et cela pourrait aussi être la façon dont la clause ON est spécifiée Cela doit changer si vous réorganisez la clause FROM. Sauf si vous utilisez l'ancienne (et mauvaise) clause JOIN-in-the-WHERE.

Enfin, si cela vous préoccupe, vous pouvez utiliser des parenthèses pour modifier l'ordre d'évaluation afin de clarifier vos intentions, par exemple, filtrer d'abord sur une grande table pour générer une table dérivée.