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

O SQL Server 2005 armazenou em cache um plano de execução que nunca poderia funcionar


Você pode estar interessado no Primeira Regra de Programação .

Um índice clusterizado sempre inclui todas as linhas. Pode ser ordenado por z , mas ainda conterá todas as outras colunas no nível folha.

O motivo pelo qual o SQL Server às vezes prefere uma verificação em cluster em vez de uma busca de índice é esse. Quando você faz uma busca de índice, você tem que seguir com uma pesquisa de marcador para o índice clusterizado para recuperar colunas que não estão no índice.

Ao fazer uma varredura de índice clusterizado, você, por definição, encontra todas as colunas. Isso significa que nenhuma pesquisa de favoritos é necessária.

Quando o SQL Server espera muitas linhas, ele tenta evitar as pesquisas de indicadores. Esta é uma escolha testada pelo tempo. As buscas de índice não clusterizado são rotineiramente superadas por varreduras de índice clusterizado.

Você pode testar isso para o seu caso forçando com o with (index(IX_YourIndex)) dica de consulta .