Sintomas
Considere o seguinte cenário:
-
Tem um procedimento armazenado que cria uma tabela temporária no Microsoft SQL Server.
-
Você faz uma consulta de que o procedimento armazenado emite, e a consulta satisfaz as seguintes condições:
-
A consulta refere-se à tabela temporária que é criada pelo procedimento armazenado.
-
A consulta tem uma cláusula WHERE que não é coberta por nenhum índice, e a funcionalidade de índices em falta está ativada.
-
-
Suponha que o procedimento armazenado é chamado simultaneamente de várias instâncias. Em seguida, as tabelas temporárias são criadas e baixadas frequentemente, o que levará à criação e eliminação frequentes dos registos correspondentes para os índices em falta.
-
Nesta situação, se uma consulta pendente do procedimento armazenado for cancelada, poderá receber um erro de violação de acesso.
Resolução
Esta emissão é corrigida nas seguintes atualizações cumulativas para o 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 que foram incluídas com a atualização cumulativa anterior. Confira as últimas atualizações cumulativas do SQL Server:
Última atualização cumulativa para SQL Server 2017
Solução
A solução para esta edição é permitir o Trace Flag (TF) 2392 que suprimirá a recolha de índices em falta.
Mais Informações
Para obter mais informações sobre a funcionalidade de índices em falta, consulte o seguinte link:
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Referências
Conheça a terminologiaque a Microsoft utiliza para descrever atualizações de software.