Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server 2005 - Ordem de junções internas


SQL é declarativo, ou seja, a ordem JOIN não deve importar.

No entanto, pode na prática, digamos, se for uma consulta complexa quando o otimizador não explorar todas as opções (o que em teoria pode levar meses).

Outra opção é que é uma consulta muito diferente se você reordenar e obter resultados diferentes, mas isso geralmente é com OUTER JOINs.

E também pode ser a maneira como a cláusula ON é especificada. Isso deve mudar se você reordenar a cláusula FROM. A menos que você esteja usando a cláusula JOIN-in-the-WHERE mais antiga (e ruim).

Finalmente, se for uma preocupação, você pode usar parênteses para alterar a ordem de avaliação para deixar suas intenções claras, digamos, filtre primeiro em uma tabela grande para gerar uma tabela derivada.