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

¿Qué le está haciendo la ejecución de consultas a esta consulta en SQL Server 2005?

Su código está haciendo suposiciones no válidas. En un lenguaje orientado a conjuntos declarativos como SQL, la ejecución es libre de elegir cualquier plan de ejecución que considere adecuado. Lo que ve como ineficiente es probablemente una optimización válida donde el título se proyecta primero desde un índice que satisface los predicados en lastmodified o algo similar. No puede hacer ninguna suposición sobre el orden de ejecución y, por lo tanto, no puede tener en la lista de proyección expresiones como SUBSTRING (..,9,..) que bombardearán ciertas filas.

Otro ejemplo de problemas que surgen de una suposición inválida similar son Cortocircuito del operador booleano de SQL Server errores de evaluación.