Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

O que a execução da consulta está fazendo com essa consulta no SQL Server 2005?


Seu código está fazendo suposições inválidas. Em uma linguagem orientada a conjuntos declarativos como SQL, a execução é livre para escolher qualquer plano de execução que achar adequado. O que você vê como ineficiente é provavelmente uma otimização válida onde o título é projetado primeiro a partir de um índice que satisfaça os predicados em lastmodified ou algo semelhante. Você não pode fazer nenhuma suposição sobre a ordem de execução e, portanto, não tem permissão para ter na lista de projeção expressões como SUBSTRING (..,9,..) que serão bombardeadas em determinadas linhas.

Outro exemplo de problemas que surgem de uma suposição inválida semelhante são Curto-circuito do operador booleano do SQL Server erros de avaliação.