Sintomas
Considere o seguinte cenário:
-
Utilize uma base de dados com o nível de compatibilidade definido como 130 no Microsoft SQL Server 2016.
-
Executa uma consulta que acede a um índice de arquivo de colunas e a um índice de arquivo de linhas ou a uma área dinâmica para dados e inclui um predicado de filtro (cláusula WHERE).
Neste cenário, SQL Server não conseguirá emitir o predicado de filtro para mais perto do operador da origem de dados (análise ou procura de índices ou tabelas). Isto pode causar um desempenho de consulta inferior ao ideal.
Além disso, se a consulta utilizar uma expressão (como a conversão de tipo) em que a sua correção depende de dados filtrados (por exemplo, uma coluna de tabela de carateres é convertida em int, mas apenas um subconjunto de valores contém uma representação int válida e este subconjunto é identificado pelo predicado de filtro), a consulta pode falhar com um erro de conversão de dados semelhante a um dos seguintes:
Msg 245, Nível 16, Estado 1, Conversão da Linha 20
falhou ao converter o valor varchar '0,5' em int de tipo de dados.
Msg 8114, Nível 16, Estado 5, Linha 34
Erro ao converter o varchar do tipo de dados em bigint.
Resolução
Este problema foi corrigido na seguinte atualização cumulativa para SQL Server:
Atualização Cumulativa 2 para SQL Server 2016 SP1
Nota Tem de ativar correções do otimizador de consultas para que esta correção entre em vigor.
Pode ativar as correções do otimizador de consultas através de uma das seguintes opções: o sinalizador de rastreio 4199, a definição Configuração no Âmbito da Base de Dados QUERY_OPTIMIZER_HOTFIXES=ON (disponível no SQL Server 2016 e posterior) ou USE_HINT opção de consulta "ENABLE_QUERY_OPTIMIZER_HOTFIXES" (disponível no SQL Server 2016 SP1 e posterior).
Cada nova atualização cumulativa para SQL Server contém todas as correções e todas as correções de segurança incluídas na atualização cumulativa anterior. Veja as atualizações cumulativas mais recentes para SQL Server:
Atualização cumulativa mais recente do SQL Server 2016
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Referências
Saiba mais sobre a terminologiaque a Microsoft utiliza para descrever as atualizações de software.