Sintomas
Quando consulta uma vista no Microsoft SQL Server 2014 ou 2016, esta pode demorar muito mais tempo a concluir se a comparar com a execução no SQL Server 2008 R2.
Ao executar uma consulta que utiliza a palavra-chave UNION ALL e um objetivo de linha (como a cláusula TOP N, FAST N ou predicado EXIST), poderá reparar que a execução da consulta é mais lenta no SQL Server 2014 ou em versões posteriores se a comparar com a SQL Server 2008 R2.
Causa
No SQL Server 2008 R2, o Otimizador de Consultas altera a ordem das diferentes partes em UNION ALL se houver uma meta de linha, de modo que a parte mais barata vá primeiro. Isto permite que a consulta conclua a execução mais cedo se as peças mais baratas produzirem o número necessário de linhas, sem continuar a executar peças mais dispendiosas. Essa reordenação não ocorre em versões posteriores do SQL Server.
Resolução
Este problema foi corrigido na seguinte atualização cumulativa para SQL Server:
Atualização cumulativa 7 para SQL Server 2016 RTM
Atualização cumulativa 4 para SQL Server 2016 SP1
Atualização cumulativa 6 para SQL Server 2014 SP2
Observação O Otimizador de Consultas tem de estar ativado para este problema.
Para obter mais informações sobre sinalizadores de otimização de consultas e rastreamento, consulte os seguintes links:
SQL Server Query Optimizer hotfix TF 4199 modelo de serviço
Comandos da consola DBCC e sinalizadores de Rastreio
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 2016
Atualização cumulativa mais recente para o SQL Server 2014
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.