Sintomas
Quando consulta uma vista no Microsoft SQL Server 2014 ou 2016, pode demorar muito mais tempo a ser concluída se a comparar com a execução no SQL Server 2008 R2.
Quando executa uma consulta que utiliza a UNION ALL e um objetivo de linha (como a cláusula TOP N, FAST N ou exista predicado), poderá notar que a consulta é mais lenta nas versões SQL Server 2014 ou posterior se a comparar com o SQL Server 2008 R2.
Causa
No SQL Server 2008 R2, o Otimizador de Consulta altera a ordem de diferentes partes ao abrigo da UNION ALL se estiver presente um objetivo de linha, de modo que a parte mais barata vá primeiro. Isto permite que a consulta termine a execução mais cedo se as peças mais baratas produzirem um número de linhas necessárias, sem continuar a executar peças mais caras. Tal reordenamento não ocorre em versões posteriores do SQL Server.
Resolução
Esta emissão é corrigida na seguinte atualização cumulativa para o 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
Nota O Optimiser de Consulta deve ser habilitado para esta questão.
Para obter mais informações sobre o otimizador de consultas e as bandeiras de rastreio, consulte os seguintes links:
Cada nova atualização cumulativa do 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. Confira as últimas atualizações cumulativas do SQL Server:
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Referências
Conheça a terminologiaque a Microsoft utiliza para descrever atualizações de software.