KB4023419 - CORREÇÃO: consulte com UNION ALL e uma meta de linha pode ser executada mais lentamente no SQL Server 2014 ou versões posteriores quando comparada ao SQL Server 2008 R2

Aplica-se a
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) 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 2016 Service Pack 1

Sintomas

Quando você consulta uma exibição no Microsoft SQL Server 2014 ou 2016, pode levar muito mais tempo para ser concluída se você compará-la com a execução no SQL Server 2008 R2.

Quando você executa uma consulta que usa UNION ALL e uma meta de linha (como a cláusula TOP N, o predicado FAST N ou EXISTS), você pode notar que a consulta é executada mais lentamente no SQL Server 2014 ou em versões posteriores se você a comparar com o SQL Server 2008 R2.

Causa

No SQL Server 2008 R2, o Otimizador de Consultas altera a ordem das diferentes partes em UNION ALL se uma meta de linha estiver presente, para que a parte mais barata seja a primeira. Isso permite que a consulta termine a execução mais cedo se as partes mais baratas produzirem o número necessário de linhas, sem continuar a executar partes mais caras. Essa reordenação não ocorre em versões posteriores do SQL Server.

Resolução

Esse problema é corrigido na seguinte atualização cumulativa para o SQL Server:

Atualização cumulativa 7 para o SQL Server 2016 RTM

Atualização cumulativa 4 para o SQL Server 2016 SP1

Atualização cumulativa 38 para o SQL Server 2014 SP2 (Build 50785)

Observação O Otimizador de Consultas deve ser habilitado para esse problema.

Para obter mais informações sobre o otimizador de consulta e os sinalizadores de rastreamento, consulte os seguintes links:

Modelo de manutenção do hotfix TF 4199 do otimizador de consultas do SQL Server

Comandos de console DBCC e sinalizadores de rastreamento

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 2016

Atualização cumulativa mais recente do SQL Server 2014

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.