Antes de empezar, es importante tener claro el orden en que SQL Server procesa las diferentes partes de una consulta:
Primero se evalúa la cláusula FROM realizándose un producto cartesiano de todas las tablas que contiene. Los operadores de tabla que aparecen en la cláusula FROM son procesados de izquierda a derecha, los resultados del primer operador son usados como tabla izquierda del siguiente operador. Tras aplicar el producto cartesiano se aplican los filtros del ON y por último se añaden las filas externas de los operadores LEFT JOIN y RIGHT JOIN.
Al conjunto de resultados que devuelve la cláusula FROM se aplica las condiciones del WHERE reduciendo el conjunto de resultados. En la cláusula WHERE es importante poner las condiciones más restrictivas primero e intentar no usar negaciones. Tras la cláusula WHERE se ejecutan las agrupaciones de los resultados con el GROUP BY y el filtro sobre estas agrupaciones con el HAVING.
Por último, SQL Server evalúa la lista de columnas de la SELECT y tras esta las posibles cláusulas OREDER BY y TOP. Este es el motivo por el cual SQL nos devuelve un error cuando intentamos usa en el WHERE los alias definidos en la lista SELECT.
Hay que destacar que cuanto menor sea el conjunto de resultados que devuelven nuestras consultas más rápidas y optimas serán. Por esto es preferible intentar filtrar nuestros resultados en el WHERE, e incluso en el FROM, antes que en HAVING (si lo hubiese). Si reducimos el conjunto de resultado en la cláusula WHERE, la cláusula GROUP BY, tendrá que realizar un trabajo menor. Siempre hay que intentar reducir las columnas devueltas al mínimo imprescindible.
Conoce más sobre transact SQL consultado todo el material que tenemos publicado aquí
¿Le ha sido útil este artículo?
¡Qué bien!
Gracias por sus comentarios
¡Sentimos mucho no haber sido de ayuda!
Gracias por sus comentarios
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo