Sintomas
Considere o seguinte cenário:
-
Utiliza uma configuração de estimativa de cardinalidade (CE) que corresponde à compatibilidade da base de dados nível 120 ou a um nível posterior para o seu sistema Microsoft SQL Server 2016 e 2017.
-
Você faz uma consulta que contém um predicado de pesquisa.
-
A consulta procura valores inferiores ou iguais a qualquer número que seja inferior ao valor mínimo de RANGE_HI_KEY que está armazenado no objeto estatístico. Ou, a consulta procura valores que sejam superiores ao valor máximo de RANGE_HI_KEY para as mesmas estatísticas.
Neste cenário, o otimizador de consulta sobrestima o número de linhas. Isto poderia causar uma escolha de plano de consulta menos do que ideal e um mau desempenho.
Resolução
A correção para este problema está incluída nas seguintes atualizações cumulativas para o SQL Server:
Atualização cumulativa 6 para SQL Server 2017
Atualização cumulativa 8 para SQL Server 2016 SP1
Atualização Cumulativa 2 para SQL Server 2016 Nota Depois de instalar esta atualização, deve ativar o traço da bandeira 4199 para ativar esta correção. Para ativar o traço da bandeira 4199, consulte o tópico Trace Flags (Transact-SQL) no website da Microsoft Developer Network (MSDN).
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Confira as últimas atualizações cumulativas do SQL Server:
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Referências
Saiba mais sobre a terminologia que a Microsoft utiliza para descrever atualizações de software.