Sintomas
Considere o seguinte cenário:
-
Tenta-se fazer uma consulta usando a estimativa de Cardinalidade padrão enquanto a emenda histograma está ativada.
-
A consulta inclui expressões numa coluna que é usada num dos predicados.
Neste cenário, ocorre uma violação de acesso. Além disso, recebe a seguinte mensagem de erro:
Msg 596, Nível 21, Estado 1, LineNumber Não posso continuar a execução porque a sessão está no estado de morte. Msg 0, Nível 20, Estado 0, LineNumber Ocorreu um erro grave no comando atual. Os resultados, se houver, devem ser descartados.
Nota A alteração histograma pode ser ativada utilizando a opção de consulta USE HINT ('ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS') ou a bandeira de traço 4139.
Resolução
Este problema é corrigido nas seguintes atualizações para o SQL Server:
Atualização Cumulativa 8 para SQL Server 2017
Atualização Cumulativa 5 para SQL Server 2016 Service Pack 2
Sobre as construções do SQL Server
Cada nova construção para SQL Server contém todos os hotfixes e correções de segurança que estavam na construção anterior. Recomendamos que instale a mais recente construção para a sua versão do SQL Server:
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Referências
DBCC TRACEON - Trace Flags (Transact-SQL)
Saiba mais sobre a terminologia padrão que a Microsoft utiliza para descrever atualizações de software.