Sintomas
Tenha em conta o seguinte cenário:
- Tem uma consulta que contém um predicado que envolve uma função parametrizada escalar definida pelo utilizador.
- Existem várias combinações de valores de parâmetros de entrada que podem produzir o mesmo resultado por esta função definida pelo utilizador.
- SQL Server utiliza o Novo Estimador de Cardinalidade no qual o modo de compatibilidade da base de dados está definido como 120.
Neste cenário, quando executa a consulta, verifica um fraco desempenho da consulta devido a um número de linhas estimado incorretamente para o predicado que envolve a função definida pelo utilizador 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
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
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.