Partager via


MSSQLSERVER_2814

Nouveau : 17 novembre 2008

Détails

Nom du produit

SQL Server

Version du produit

9.0

Numéro de build du produit

 

ID d'événement

2814

Source de l'événement

MSSQLSERVER

Composant

SQLEngine

Nom symbolique

PR_POSSIBLE_INFINITE_RECOMPILE

Texte du message

Recompilation infinie détectée pour SQLHANDLE %hs, PlanHandle %hs, décalage de début %d, décalage de fin %d. Dernière raison de la recompilation : %d.

Explication

Une ou plusieurs instructions ont provoqué au moins 50 recompilations du lot de requêtes. L'instruction spécifiée doit être corrigée afin d'éviter toute recompilation supplémentaire.

Le tableau suivant répertorie les raisons de la recompilation.

Code de raison Description

1

Schéma modifié

2

Statistiques modifiées

3

Compilation différée

4

Option Set modifiée

5

Table temporaire modifiée

6

Ensemble de lignes distant modifié

7

Autorisations de recherche modifiées

8

Environnement de notification de requête modifié

9

Affichage partition modifié

10

Options de curseur modifiées

11

Option (recompile) demandée

Action utilisateur

  1. Affichez l'instruction qui provoque la recompilation en exécutant la requête suivante. Remplacez les emplacements réservés indiqués par des crochets pointus < > par les valeurs spécifiées dans le message d'erreur. Notez que les colonnes database_name et object_name sont NULL pour les instructions SQL ad hoc et préparées.

    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. En fonction de la description du code de raison, modifiez l'instruction, le lot ou la procédure afin d'éviter les recompilations. Par exemple, une procédure stockée peut contenir une ou plusieurs instructions SET. Ces instructions doivent être supprimées de la procédure. Pour obtenir d'autres exemples de causes de recompilation et de résolutions, consultez Batch Compilation, Recompilation, and Plan Caching Issues in SQL Server 2005 (en anglais).

  3. Si le problème persiste, contactez les services de support technique de Microsoft.

Voir aussi

Autres ressources

Classe d'événements SQL:StmtRecompile

Aide et Informations

Assistance sur SQL Server 2005