Sintomas
Considere o seguinte cenário:
-
Você usa um banco de dados com o nível de compatibilidade definido como 130 no Microsoft SQL Server 2016.
-
Você executa uma consulta que acessa um índice de repositório de colunas e um índice de repositório de linhas ou um heap e inclui um predicado de filtro (cláusula WHERE).
Nesse cenário, SQL Server não será capaz de empurrar o predicado de filtro mais perto do operador de fonte de dados (tabela ou verificação de índice ou busca). Isso pode causar desempenho de consulta suboptimal.
Além disso, se a consulta usa uma expressão (como conversão de tipo) em que sua correção depende de dados filtrados (por exemplo, uma coluna de tabela char é convertida em int, mas apenas um subconjunto de valores contém uma representação int válida, e esse subconjunto é identificado pelo predicado de filtro), a consulta pode falhar com um erro de conversão de dados que se assemelha a um dos seguintes:
Falha no msg 245, nível 16, estado 1, conversão de linha 20
ao converter o valor varchar '0.5' em int de tipo de dados.
Msg 8114, Nível 16, Estado 5, Erro da Linha 34
convertendo o tipo de dados varchar em bigint.
Resolução
Esse problema é corrigido na seguinte atualização cumulativa para SQL Server:
Atualização Cumulativa 2 para SQL Server 2016 SP1
Observação Você deve habilitar os hotfixes do otimizador de consulta para que essa correção entre em vigor.
Você pode habilitar os hotfixes do otimizador de consulta usando uma das seguintes opções: sinalizador de rastreamento 4199, configuração de Configuração com Escopo de Banco de Dados QUERY_OPTIMIZER_HOTFIXES=ON (disponível em SQL Server 2016 e posterior) ou USE_HINT opção de consulta 'ENABLE_QUERY_OPTIMIZER_HOTFIXES' (disponível em SQL Server 2016 SP1 e posterior).
Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as últimas atualizações cumulativas para SQL Server:
Atualização cumulativa mais recente para SQL Server 2016
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologiaque a Microsoft usa para descrever atualizações de software.