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

UNION vs DISTINCT en termes de performances

Cela dépend de la requête - sans connaître la complexité des requêtes A, B ou C, ce n'est pas une question à laquelle on peut répondre, donc votre meilleur pari est de profiler puis de juger en fonction de cela.

Cependant... J'irais probablement avec un syndicat malgré tout :une table temporaire peut être assez chère, d'autant plus qu'elle devient grande. N'oubliez pas qu'avec une table temporaire, vous créez explicitement des opérations supplémentaires et donc plus d'E/S pour stresser le sous-système de disque. Si vous pouvez faire une sélection sans recourir à une table temporaire, cela sera toujours (probablement) plus rapide.

Il y a forcément une exception (ou sept) à cette règle, il est donc préférable de profiler par rapport à un ensemble de données réaliste pour vous assurer d'obtenir des chiffres solides sur lesquels prendre une décision appropriée.