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
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>;
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).
Si le problème persiste, contactez les services de support technique de Microsoft.
Voir aussi
Autres ressources
Classe d'événements SQL:StmtRecompile