sql >> Base de Datos >  >> RDS >> Sqlserver

UNION vs DISTINCT en rendimiento

Depende de la consulta:sin conocer la complejidad de las consultas A, B o C, no se puede responder, por lo que su mejor opción es crear un perfil y luego juzgar en función de eso.

Sin embargo... Probablemente elegiría un sindicato de todos modos:una mesa temporal puede ser bastante costosa, especialmente a medida que crece. Recuerde que con una tabla temporal, está creando explícitamente operaciones adicionales y, por lo tanto, más E/S para estresar el subsistema del disco. Si puede hacer una selección sin recurrir a una tabla temporal, eso siempre (probablemente) será más rápido.

Es probable que haya una excepción (o siete) a esta regla, por lo tanto, es mejor que haga un perfil con un conjunto de datos realmente grande para asegurarse de obtener algunas cifras sólidas para tomar una decisión adecuada.