KB3150152 - CORREÇÃO: o número estimado de linhas é calculado incorretamente para um predicado envolvendo uma coluna GUID exclusiva no SQL Server 2014 ou 2016

Aplica-se a
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Sintomas

Considere o seguinte cenário:

  • Você tem uma consulta que usa um predicado de não igualdade em uma coluna GUID exclusiva no SQL Server 2014 ou 2016.
  • As estatísticas são atualizadas usando a amostragem padrão. Ou novas linhas são inseridas na tabela após a última atualização de estatísticas.
  • O SQL Server usa o Novo Estimador de Cardinalidade no qual o modo de compatibilidade do banco de dados é definido como 120.
  • Os valores de GUID são distribuídos de maneira não uniforme pela tabela.

Nesse cenário, ao executar a consulta, você pode ter um desempenho fraco devido ao número de linhas estimado incorretamente para o predicado no plano de consulta.

Resolução

Esse problema foi corrigido pela primeira vez na seguinte atualização cumulativa para o SQL Server:

Atualização cumulativa 38 para o SQL Server 2014 Service Pack 1 (Build 50785)
        
         Atualização cumulativa 1 para o SQL Server 2016
        
        
Depois de instalar esse pacote de atualização cumulativa, você precisará habilitar o sinalizador de rastreamento 4199. Para fazer isso, você pode adicionar o parâmetro de inicialização -T4199. Ou você pode usar a dbcc traceon(4199) declaração para uma sessão específica.

Sobre atualizações cumulativas para o SQL Server

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. Confira as atualizações cumulativas mais recentes para o SQL Server:

Atualização cumulativa mais recente do SQL Server 2014
        
Atualização cumulativa mais recente do SQL Server 2016

Status

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Referências

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