Onde devo colocar os filtros em uma consulta TSQL?
SELECT a.colum FROM A
JOIN B ON A.ID = B.ID AND B.STATUS = 1
OU
SELECT a.colum FROM A
JOIN B ON A.ID = B.ID
WHERE B.STATUS = 1
Estou procurando problemas de desempenho ou boas práticas.
Observação:
Isso muda para OUTER JOINs porque você mudaria para uma junção interna
A maneira rápida:
Com filtros separados:
Depende. Você precisa examinar o plano de execução de suas consultas específicas e ver qual consulta está usando o plano mais eficiente. Com consultas tão simples quanto o seu exemplo, os planos provavelmente serão bem parecidos. Quanto mais complexa a consulta mais diferença você verá no plano.