Sintomas
A lógica de estimativa de cardinalícia que é conhecida como o estimador de cardinalícia (CE) foi redesenhada no SQL Server 2014 (níveis de compatibilidade 120) e SQL Server 2016 (níveis de compatibilidade 130) para melhorar a qualidade dos planos de consulta. No entanto, quando se compila uma consulta complexa que contém muitas juntas com um operador DISTINTO ou GROUP BY, a compilação pode demorar muito mais tempo do que o esperado.
Resolução
Esta atualização que corrige este problema está incluída no Service Pack 1 para o SQL Server 2016.Nota Depois de instalar esta atualização, tem de definir o traço da bandeira 4199 para ativar a correção. Para definir o traço da bandeira 4199, consulte o tópico Trace Flags (Transact-SQL) na MSDN.
Cada nova construção para o SQL Server 2016 contém todos os hotfixes e todas as correções de segurança que foram incluídas com a construção anterior. Recomendamos que instale a mais recente construção para o SQL Server 2016.
Solução
Para contornar este problema, utilize um dos métodos seguintes:
-
Utilize o traço da bandeira 9481 para definir o modelo de estimativa de cardinalidade optimizador de consulta para o SQL Server 2012 ou uma versão anterior.
-
Altere o nível de compatibilidade da base de dados para SQL Server 2012 (110) ou uma versão anterior.
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Referências
Conheça a terminologia que a Microsoft utiliza para descrever atualizações de software.