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

SQL Joins vs SQL Subqueries (Desempenho)?


Eu ESPERO que a primeira consulta seja mais rápida, principalmente porque você tem uma equivalência e um JOIN explícito. Na minha experiência IN é um operador muito lento, pois o SQL normalmente o avalia como uma série de WHERE cláusulas separadas por "OR" (WHERE x=Y OR x=Z OR... ).

Tal como acontece com ALL THINGS SQL, porém, sua milhagem pode variar. A velocidade vai depender muito dos índices (você tem índices nas duas colunas de ID? Isso vai ajudar muito...) entre outras coisas.

A única maneira REAL de saber com 100% de certeza o que é mais rápido é ativar o rastreamento de desempenho (as Estatísticas de E/S são especialmente úteis) e executar os dois. Certifique-se de limpar seu cache entre as execuções!