Uma violação de acesso ocorre quando a função sys.dm_db_index_physical_stats é utilizada numa instrução se existe uma consulta SQL no SQL Server 2012

Sintomas

Executar uma consulta SQL que contém uma instrução IF existe no Microsoft SQL Server 2012. Se a instrução IF existe contém a função de gestão dinâmica sys.dm_db_index_physical_stats, recebe uma violação de acesso semelhante à seguinte:

data time spid # * *******************************************************************************
datatempo spid # *
datatempo spid # * começar a copiar de pilha:
datatempo spid # * data hora spid #
datatempo spid # *
datatempo spid # *
datatempo spid # * endereço de excepção = 000007FF7DA5614B Module(sqlmin+000000000000614B)
datatempo spid # * código de excepção = c0000005 EXCEPTION_ACCESS_VIOLATION
datatempo spid # * violação de acesso ao ler o endereço 0000000800000F04
datatempo spid # * bytes de entrada da memória intermédia 510 -
datatempo spid # * SQL_query_code
datatempo spid # * final

Notas

  • Se executar o comando DBCC CHECKDB contra essa base de dados depois de ocorre a violação de acesso, é comunicado qualquer erro.

  • A violação de acesso ocorre quando a consulta SQL for executada pela primeira vez. No entanto, a violação de acesso ocorre sempre que executar a consulta SQL depois.

  • Se activar o sinalizador de rastreio 3654, a violação de acesso não ocorre. No entanto, recebe o seguinte erro no rastreio em vez disso:

    Localização: sosmemdbg.cpp:2074
    Expressão: Falso
    SPID: 55
    ID do processo: 16972
    Descrição: MEMOBJ_INDEXANALYSIS - detectados de memória não libertada.
    Msg 3624, 20 de nível de estado 1, linha 5
    Falhou uma verificação de asserção do sistema. Verifique o registo de erros do SQL Server para obter detalhes. Normalmente, uma falha de asserção é causada por uma corrupção de dados ou erros de software. Para verificar a existência de danos da base de dados, considere executar DBCC CHECKDB. Se acordado enviar informações de estado para a Microsoft durante a configuração, uma pequena cópia será enviada à Microsoft. Uma actualização poderão ficar disponível da Microsoft no Service Pack mais recente ou num QFE do suporte técnico.
    Msg 0, 20, o estado 0, 0 de linha de nível
    Ocorreu um erro grave no comando actual. Os resultados, se for caso disso, devem ser eliminados.


Resolução

Para resolver este problema, instale a actualização cumulativa 7 para o SQL Server SP1 de 2012. Este problema foi primeiro corrigido nesta actualização cumulativa.

Cada nova actualização cumulativa para o SQL Server contém todas as correcções e todas as correcções de segurança que foram incluídas na anterior actualização cumulativa. Para mais informações, consulte a actualização cumulativa mais recente para o SQL Server SP1 de 2012.

Estado

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

Referências

Consulte a terminologia Microsoft utiliza para descrever actualizações de software.

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×