Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Join SQL e subquery SQL (prestazioni)?

Mi aspetto che la prima query sia più veloce, principalmente perché hai un'equivalenza e un JOIN esplicito. Nella mia esperienza IN è un operatore molto lento, poiché SQL normalmente lo valuta come una serie di WHERE clausole separate da "OR" (WHERE x=Y OR x=Z OR... ).

Come con ALL THINGS SQL, tuttavia, il tuo chilometraggio può variare. La velocità dipenderà molto dagli indici (hai indici su entrambe le colonne ID? Questo aiuterà molto...) tra le altre cose.

L'unico vero modo per dire con certezza al 100% che è più veloce è attivare il monitoraggio delle prestazioni (le statistiche IO sono particolarmente utili) ed eseguirle entrambe. Assicurati di svuotare la cache tra una corsa e l'altra!