Sintomas
Considere o seguinte cenário:
-
Você tem um procedimento armazenado que cria uma tabela temporária no Microsoft SQL Server.
-
Você executa uma consulta que o procedimento armazenado emite e a consulta atende às seguintes condições:
-
A consulta faz referência à tabela temporária que é criada pelo procedimento armazenado.
-
A consulta tem uma cláusula WHERE que não é coberta por nenhum índice, e o recurso de índices ausentes está habilitado.
-
-
Suponha que o procedimento armazenado seja chamado simultaneamente de várias instâncias. Em seguida, as tabelas temporárias são criadas e soltadas com frequência, que levarão à criação e exclusão frequente dos registros correspondentes para os índices ausentes.
-
Nessa situação, se uma consulta pendente do procedimento armazenado for cancelada, você poderá receber um erro de violação de acesso.
Resolução
Esse problema foi corrigido nas seguintes atualizações cumulativas do SQL Server:
Atualização cumulativa 2 para SQL Server 2017
Atualização cumulativa 9 para SQL Server 2016 RTM
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Atualização cumulativa mais recente do SQL Server 2017
Solução alternativa
A solução alternativa para esse problema é habilitar o sinalizador de rastreamento (TF) 2392 , que suprimirá a coleção de índices ausentes.
Informações adicionais
Para obter mais informações sobre o recurso de índices ausentes, consulte o link a seguir:
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.