Sintomas
Sua consulta pode ser executada lentamente se as seguintes condições forem verdadeiras:
-
A consulta usa agregações como Group by.
-
O SQL Server usa o agregado de hash no plano de consulta.
-
O número estimado de valores distintos é muito menor do que o número real de valores distintos para a agregação.
Quando esse problema ocorre, você verá um evento de aviso de hash se fizer o Profiler ou o rastreamento de eventos estendido.
Causa
Esse problema ocorre porque o SQL Server subestima a quantidade de concessão de memória necessária. Isso resulta em resultados intermiedate emissores para tempdb.
Resolução
O problema foi corrigido primeiro na seguinte atualização cumulativa do SQL Server:
ObservaçãoVocê precisa habilitar o sinalizador de rastreamento 9410 para ativar essa correção.
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Recomendamos que você baixe e instale as atualizações cumulativas mais recentes do SQL Server:
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.