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

Tenha em conta o seguinte cenário:

  • Tem uma consulta que utiliza um predicado de não-igualdade numa coluna GUID exclusiva no SQL Server 2014 ou 2016.
  • As estatísticas são atualizadas utilizando a amostragem predefinida. Alternativamente, serão inseridas novas linhas na tabela após a última atualização das estatísticas.
  • SQL Server utiliza o Novo Estimador de Cardinalidade no qual o modo de compatibilidade da base de dados está definido como 120.
  • Os valores de GUID não são distribuídos uniformemente pela tabela.

Neste cenário, quando executar a consulta, poderá detectar um desempenho fraco devido ao número de linhas incorretamente estimado para o predicado no plano de consulta.

Resolução

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

Atualização cumulativa 6 para SQL Server 2014 Service Pack 1
        
         Atualização cumulativa 1 para SQL Server 2016
        
        
Depois de instalar este pacote de atualizações cumulativas, tem de ativar o sinalizador de rastreio 4199. Para fazer isso, você pode adicionar o parâmetro de inicialização -T4199. Em alternativa, pode utilizar a instrução dbcc traceon(4199) para uma sessão específica.

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 2014
        
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.