KB2809338 – CORRECTIF : valeur élevée du compteur « Attentes d’écriture du journal » sur un instance SQL Server 2012 ou SQL Server 2014

S’applique à
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use) SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core

Symptômes

        
Supposons que vous activez une fonctionnalité telle que les groupes de disponibilité AlwaysOn qui utilise le pool de journaux dans une instance de Microsoft SQL Server 2012 ou de Microsoft SQL Server 2014. Dans ce cas, le compteur d’attentes d’écriture du journal pour la mémoire tampon du journal sur le SQL Server instance a une valeur élevée. Vous remarquerez également des valeurs élevées pour les types d’attente CMEMTHREAD et WRITELOG dans les vues de gestion dynamique (DMV). De plus, des fichiers de vidage minimal sont générés.

Remarque Le pool de journaux est un cache en mémoire du journal des transactions. Ce cache est utilisé, entre autres : pour optimiser la lecture du journal pendant la restauration et les opérations de restauration dans la réplication des transactions, ainsi que pour la fonctionnalité Groupes de disponibilité AlwaysOn.

Cause

Ce problème se produit, car le pool de journaux utilise un pointeur global vers un objet mémoire (PMO) pour toutes les bases de données.

Lorsque de nombreux threads tentent d’écrire des journaux à l’aide du pool de journaux, tous les threads doivent attendre que le pointeur vers un objet mémoire entraîne la contention décrite dans la section Symptômes.

Résolution

SQL Server 2014 Service Pack 1

Par défaut, le Service Pack 1 pour SQL Server 2014 inclut ce correctif et vous n’avez pas besoin d’ajouter d’indicateurs de trace pour l’activer.

SQL Server 2014

Ce problème a été résolu dans la version RTM de SQL Server 2014, mais vous devez encore activer l’indicateur de trace T9024 et/ou 8048 pour activer le correctif. Une fois cet indicateur de trace activé, le SQL Server instance partitionne le pointeur sur un objet mémoire au niveau du nœud.

Notes

  • Si les problèmes persistent même après l’activation de l’indicateur de trace T9024, vous pouvez également activer l’indicateur de trace T8048 qui partitionne le pointeur vers l’objet mémoire au niveau du processeur.
  • SQL Server 2014 Service Pack 1 (SP1) inclut ce correctif et vous n’avez pas besoin d’activer l’indicateur de trace.

          

SQL Server 2012

            
Remarque : SQL Server 2012 Service Pack 3 (SP3) inclut ce correctif et vous n’avez pas besoin d’activer l’indicateur de trace.

Informations sur les mises à jour cumulatives

Mise à jour cumulative 3 pour SQL Server 2012 SP1

Le correctif pour résoudre ce problème a été publié pour la première fois dans la mise à jour cumulative 3. Pour plus d’informations sur la procédure d’obtention de ce package de mise à jour cumulative pour SQL Server 2012 SP1, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft.

2812412 Package de mise à jour cumulative 3 pour SQL Server 2012 Service Pack 1Remarque : les builds étant cumulatives, chaque nouvelle publication contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2012 SP1. Nous vous recommandons d’envisager d’appliquer la version la plus récente du correctif qui contient ce correctif. Pour plus d’informations, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

2772858 Builds SQL Server 2012 publiées après SQL Server 2012 Service Pack 1 Remarque Après avoir appliqué le correctif, vous devez activer l’indicateur de trace T9024 pour activer le correctif. Une fois cet indicateur de trace activé, le SQL Server instance partitionne le pointeur sur un objet mémoire au niveau du nœud.

Remarque Si les problèmes persistent même après l’activation de l’indicateur de trace T9024, vous pouvez également activer l’indicateur de trace T8048 qui partitionne le pointeur vers l’objet mémoire au niveau du processeur.

Informations sur le correctif logiciel

Un correctif logiciel pris en charge est disponible auprès de Microsoft. Toutefois, il est conçu uniquement pour corriger le problème décrit dans cet article. N’appliquez ce correctif qu’aux systèmes sur lesquels vous rencontrez ce problème.

Si le correctif logiciel est disponible en téléchargement, une section « Téléchargement de correctif logiciel disponible » figure en haut du présent article de la Base de connaissances. Si cette section est absente, demandez le correctif logiciel auprès du Support technique et Service clientèle Microsoft.

Remarque Si des problèmes supplémentaires surviennent ou si des procédures de dépannage sont nécessaires, vous devrez peut-être créer une demande de service distincte. Les coûts habituels du support s'appliqueront aux autres questions et problèmes du support non directement liés au correctif logiciel en question. Pour obtenir la liste complète des numéros de téléphone des services d’assistance technique Microsoft ou pour créer une demande de service distincte, reportez-vous au site web de Microsoft à l’adresse suivante :

/contactus/ ?ws=support Remarque Le formulaire « Téléchargement de correctif logiciel disponible » affiche les langues pour lesquelles le correctif logiciel est disponible. Si votre langue n'est pas répertoriée, cela signifie qu'aucun correctif logiciel n'est disponible pour cette langue.

Conditions préalables pour SQL Server 2012

Pour appliquer ce correctif logiciel, vous devez avoir installé SQL Server 2012 SP1 sur l’ordinateur.

Nécessité de redémarrer

Il n’est pas obligatoire de redémarrer votre ordinateur après avoir appliqué ce correctif logiciel. SQL Server doit être redémarré avec l’indicateur de trace T9024. Pour plus d’informations sur la configuration de SQL Server à l’aide d’un indicateur de suivi de démarrage, voir Options de démarrage du service de moteur de base de données.

Informations de fichier

La version de correctif logiciel global de celui-ci possède les attributs de fichier répertoriés dans le tableau suivant ou ceux d’une version ultérieure. Les date et heure de création de ces fichiers sont exprimées en temps universel coordonné (UTC). Lorsque vous affichez les informations des fichiers, les données sont converties en heure locale. Pour connaître le décalage entre l’heure UTC et l’heure locale, utilisez l’onglet Fuseau horaire dans l’élément Date et heure du Panneau de configuration.