MSSQLSERVER_2814

Detalhes

Nome do produto

SQL Server

Versão do produto

10.50

Número da compilação do produto

 

ID do evento

2814

Origem do evento

MSSQLSERVER

Componente

SQLEngine

Nome simbólico

PR_POSSIBLE_INFINITE_RECOMPILE

Texto da mensagem

Uma possível recompilação infinita foi detectada para SQLHANDLE% hs, PlanHandle% hs, deslocamento inicial % d, deslocamento final % d. O último motivo da recompilação foi % d.

Explicação

Uma ou mais instruções fizeram com que o lote de consultas fosse recompilado pelo menos 50 vezes. A instrução especificada deve ser corrigida para evitar mais recompilações.

A tabela a seguir lista os motivos da recompilação.

Código do motivo

Descrição

1

Esquema alterado

2

Estatísticas alteradas

3

Compilação adiada

4

Opção set alterada

5

Tabela temp alterada

6

Conjunto de linhas remoto alterado

7

Permissões For Browse alteradas

8

Ambiente de notificação de consulta alterado

9

Exibição de partição alterada

10

Opções de cursor alteradas

11

Opção (recompilar) solicitada

Ação do usuário

  1. Para exibir a instrução que causa a recompilação, execute a consulta a seguir. Substitua os espaços reservados sql_handle, starting_offset, ending_offset e plan_handle pelos valores especificados na mensagem de erro. Observe que as colunas database_name e object_name serão NULL para instruções Transact-SQL ad hoc e preparadas.

    SELECT DB_NAME(st.dbid) AS database_name

    , OBJECT_NAME(st.objectid) AS object_name

    , st.text

    FROM sys.dm_exec_query_stats AS qs

    CROSS APPLY sys.dm_exec_sql_text (sql_handle) AS st

    WHERE qs.statement_start_offset = starting_offset

    AND qs.statement_end_offset = ending_offset

    AND qs.plan_handle = plan_handle;

  2. Com base na descrição do código do motivo, modifique a instrução, o lote ou o procedimento para evitar recompilações. Por exemplo, um procedimento armazenado pode conter uma ou mais instruções SET. Essas instruções devem ser removidas do procedimento. Para obter mais exemplos dos motivos da e das resoluções da recompilação, consulte Problemas de compilação em lote, recompilação e cache de planos no SQL Server 2005.

  3. Se o problema persistir, contate os Serviços de Atendimento ao Cliente da Microsoft.

Consulte também

Referência