KB3192154 - Uma escolha de plano de consulta não otimizada provoca um desempenho fraco quando são pesquisados valores fora do intervalo representado em estatísticas no SQL Server 2016 e 2017

Aplica-se A
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1

Sintomas

Tenha em conta o seguinte cenário:

  • Utilize uma configuração de estimativa de cardinalidade (CE) que corresponde ao nível de compatibilidade da base de dados 120 ou a um nível posterior para o seu sistema Microsoft SQL Server 2016 e 2017.
  • Executar uma consulta que contém um predicado de pesquisa.
  • A consulta procura valores inferiores ou iguais a qualquer número inferior ao valor mínimo de RANGE_HI_KEY armazenado no objeto de estatística. Em alternativa, a consulta procura valores superiores ao valor máximo de RANGE_HI_KEY para as mesmas estatísticas.

Nesse cenário, o otimizador de consulta superestima o número de linhas. Isto pode causar uma escolha de plano de consulta inferior à ideal e um desempenho fraco.

Resolução

A correção para este problema está incluída nas seguintes atualizações cumulativas para 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 actualização, tem de activar o sinalizador de rastreio 4199 para activar esta correcção. Para habilitar o sinalizador de rastreamento 4199, consulte o tópico Sinalizadores de rastreamento (Transact-SQL) no site Microsoft Developer Network (MSDN).

Acerca das atualizações cumulativas para SQL Server

Cada nova atualização cumulativa para 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. Consulte as atualizações cumulativas mais recentes para SQL Server:

Atualização cumulativa mais recente para o SQL Server 2017

Atualização cumulativa mais recente para o SQL Server 2016

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".

Referências

Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software.