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

SQL rejoint les sous-requêtes SQL (performances) ?

Je m'attendrais à ce que la première requête soit plus rapide, principalement parce que vous avez une équivalence et un JOIN explicite. D'après mon expérience IN est un opérateur très lent, puisque SQL l'évalue normalement comme une série de WHERE clauses séparées par "OR" (WHERE x=Y OR x=Z OR... ).

Comme pour TOUTES LES CHOSES SQL, votre kilométrage peut varier. La vitesse dépendra beaucoup des index (avez-vous des index sur les deux colonnes ID ? Cela aidera beaucoup...) entre autres.

La seule VRAIE façon de dire avec 100% de certitude ce qui est plus rapide est d'activer le suivi des performances (les statistiques d'E/S sont particulièrement utiles) et de les exécuter toutes les deux. Assurez-vous de vider votre cache entre les exécutions !