DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 917828 - Dernière mise à jour: mardi 17 février 2009 - Version: 7.0

 
Bogue #: 329155 (SQLBUDT)

Symptômes

Dans Microsoft SQL Server 2005, vous pouvez rencontrer une baisse des performances de requête après l'exécution de certaines opérations de maintenance de base de données ou d'une transaction standard opérations. Par exemple, vous pouvez remarquer une baisse soudaine des performances de requête après avoir restauré une sauvegarde de base de données.

À partir de SQL Server 2005 Service Pack 2, vous remarquerez messages tels qu'au suivant dans le journal des erreurs SQL Server lorsque ce problème se produit :
2006-10-15 06:03:29.330 spid59 SQL Server a rencontré 4 occurrence(s) de vidage cachestore pour le cachestore « objet plans » (qui fait partie de cache de plan) à certains maintenance de base de données ou reconfigurer les opérations.
2006-10-15 06:03:29.420 spid59 SQL Server a rencontré 4 occurrence(s) de vidage cachestore pour le cachestore « SQL plans » (qui fait partie de cache de plan) à certains maintenance de base de données ou reconfigurer les opérations.
2006-10-15 06:03:29.420 les spid59 SQL Server a rencontré 4 occurrence(s) de vidage cachestore pour le cachestore 'arbres Lié' (partie de cache de plan) à certains maintenance de base de données ou reconfigurer les opérations.
Cependant, vous pouvez exécuter la commande DBCC FREEPROCCACHE ou la commande DBCC FREESYSTEMCACHE pour vider le cache de procédure. Si le cache de procédure a été vidé en exécutant une des ces commandes, vous remarquerez des messages semblables au suivant dans le journal des erreurs SQL Server :
2006-12-14 11:37:03.57 spid53 SQL Server a rencontré 1 occurrence(s) de cachestore vidage pour le cachestore « SQL plans » (qui fait partie de cache de plan) en raison d'opérations « DBCC FREEPROCCACHE » ou « DBCC FREESYSTEMCACHE ».
2006-12-14 11:37:03.57 spid53 SQL Server a rencontré 1 occurrence(s) de cachestore vidage pour le cachestore 'arbres Lié' (partie de cache de plan) en raison d'opérations « DBCC FREEPROCCACHE » ou « DBCC FREESYSTEMCACHE ».
Par conséquent, vous pouvez examiner le journal des erreurs SQL Server pour déterminer si le problème est provoqué par le problème décrit dans cet article.

note Ce problème ne se produit pas dans Microsoft SQL Server 2008.

Cause

Ce problème se produit parce que certaines opérations de maintenance de base de données ou d'une transaction standard opérations effacer le cache de procédure ensemble.

Statut

Ce comportement est voulu par la conception même du produit.

Plus d'informations

Le cache de procédure entier est effacé lorsque certaines opérations au niveau de base de données sont exécutées dans les scénarios suivants :
  • Une base de données a la possibilité de base de données AUTO_CLOSE sur la valeur. Lorsque aucune connexion d'utilisateur fait référence à ou utilise la base de données, la tâche d'arrière-plan tente de fermer et fermer automatiquement la base de données.
  • Vous exécutez plusieurs requêtes sur une base de données contenant les options par défaut. Ensuite, la base de données est supprimé.
  • Un instantané de base de données d'une base de données source est supprimé.

    note Les instantanés de base de données sont uniquement disponibles dans SQL Server 2005 Enterprise Edition.
  • Vous modifiez l'état de base de données en OFFLINE ou ONLINE.
  • Vous correctement recréer le journal des transactions pour une base de données.
  • Restaurer une sauvegarde de base de données.
  • Vous exécutez l'instruction DBCC CHECKDB.

    note Cela est vrai seulement dans les versions de SQL Server 2005 antérieures à SQL Server 2005 SP2. Après avoir installé SQL Server 2005 SP2 ou versions ultérieures, le cache toute procédure n'est pas vidé lorsque vous exécutez l'instruction DBCC CHECKDB.
  • Vous détacher une base de données.
  • Vous spécifier une des options suivantes lorsque vous exécutez l'instruction ALTER DATABASE :
    • HORS CONNEXION
    • EN LIGNE
    • MODIFIER LE GROUPE DE FICHIERS PAR DÉFAUT
    • MODIFY_NAME
    • MODIFIER LE GROUPE DE FICHIERS READ_WRITE
    • COPIES ASSEMBLÉES
    • MODIFIER LE GROUPE DE FICHIERS READ_ONLY
    • READ_ONLY
    • READ_WRITE
  • Le cache de procédure entier est désactivée si une des options suivantes serveur est modifiée par l'instruction RECONFIGURE :
    • croix de chaînage de la propriété base de données
    • index créer de mémoire (Ko)
    • Temporisation de requête distante (s)
    • options utilisateur
    • taille du repl texte maximum (B)
    • Seuil de coût de parallélisme
    • degré maximum de parallélisme
    • mémoire minimum par requête (Ko)
    • attente de requête (s)
    • mémoire de serveur Min (Mo)
    • mémoire de serveur maximale (Mo)
    • limite de requête governor coût
    note Cache de procédure n'est pas effacée si la valeur réelle ne change pas ou si la nouvelle valeur pour l'option de serveur de mémoire de serveur maximale est définie sur 0.
Si vous rencontrez ce problème, vous remarquer des modifications dans les valeurs suivantes lorsque vous utilisez Analyseur de performances pour collecter des données à partir de compteurs de performances SQL Server 2005 :
  • objet de performance : Processus
    compteur : % temps processeur
    instance : sqlservr

    La valeur de ce compteur augmente en raison d'activité du processeur accrue. En fait, le cache de procédure entier est effacé si ce problème se produit. Par conséquent, les requêtes suivantes doivent générer de nouveaux plans de mise en cache. Cela augmentera légèrement activité du processeur.
  • objet de performance : Cache SQLServer:Plan
    compteur : Nombre d'objets cache
    instance : _Total

    objet de performance : Cache SQLServer:Plan
    compteur : Pages du cache
    instance : _Total

    Les valeurs de ces compteurs soudainement diminue.

    note Pour une instance nommée de SQL Server 2005, l'objet de performance est nommé MSSQL $ InstanceName : cache de plan.
  • objet de performance : Statistiques SQLServer:SQL
    compteur : SQLCompilations/s

    La valeur de ce compteur augmente considérablement après cet incident.

    note Pour une instance nommée de SQL Server 2005, l'objet de performance est nommé MSSQL $ InstanceName : Statistiques SQL.
Si vous capturez une trace du Générateur de profils SQL à l'aide de l'événement SP:CacheRemove , vous remarquerez que cet événement est généré lorsque ce problème se produit ainsi que la valeur de colonne TextData suivante :
« Cache procédure ensemble vidé »

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Express Edition with Advanced Services
Mots-clés : 
kbmt kbsql2005engine kbexpertiseadvanced kbtshoot kbprb KB917828 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 917828  (http://support.microsoft.com/kb/917828/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store