KB4042232 - CORRECÇÃO: Violação de acesso ao cancelar uma consulta pendente se o recurso de índices ausentes estiver habilitado no SQL Server

Aplica-se a
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows

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 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 descartadas com frequência, o que levará à criação e exclusão frequentes 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 é corrigido nas seguintes atualizações cumulativas para o SQL Server:

Atualização cumulativa 2 para o SQL Server 2017

Atualização cumulativa 9 para o SQL Server 2016 RTM

Atualização cumulativa 38 para o SQL Server 2016 SP1 (Build 50785)

Atualização cumulativa 8 para o SQL Server 2014 SP2

Sobre atualizações cumulativas para o SQL Server:

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 para o SQL Server:

Atualização cumulativa mais recente do SQL Server 2017

Atualização cumulativa mais recente do SQL Server 2016

Atualização cumulativa mais recente do SQL Server 2014

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.

Mais informações

Para obter mais informações sobre o recurso de índices ausentes, consulte o seguinte link:

Recurso de índices ausentes

Status

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Referências

Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.