Sintomas
A lógica de estimativa de cardinalidade conhecida como o cardinalidade de cardinalidade (CE) foi reformulada no SQL Server 2014 (níveis de compatibilidade 120) e no SQL Server 2016 (níveis de compatibilidade 130) para melhorar a qualidade dos planos de consulta. No entanto, quando você compila uma consulta complexa que contém muitas junções com um operador DISTINCT ou GROUP BY, a compilação pode demorar muito mais do que o esperado.
Resolução
Esta atualização que corrige esse problema está incluída no Service Pack 1 para SQL Server 2016.Observação Depois de instalar esta atualização, você deve definir o sinalizador de rastreamento 4199 para habilitar a correção. Para definir o sinalizador de rastreamento 4199, consulte o tópico indicadores de rastreamento (Transact-SQL) no msdn.
Cada compilação nova do SQL Server 2016 contém todos os hotfixes e todas as correções de segurança que foram incluídas na compilação anterior. Recomendamos que você instale a versão mais recente do SQL Server 2016.
Solução alternativa
Como solução alternativa para esse problema, use um dos seguintes métodos:
-
Use o sinalizador de rastreamento 9481 para definir o modelo de previsão cardinalidade do otimizador de consulta para o SQL Server 2012 ou uma versão anterior.
-
Altere o nível de compatibilidade do banco de dados para o SQL Server 2012 (110) ou uma versão anterior.
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.