CORRIGER : Ralentissement des performances survient dans SQL Server 2008 R2 ou SQL Server 2012 si utilisation élevée du processeur peut être observée avec contention pendant le verrouillage spinlock QUERY_EXEC_STATS

Traductions disponibles Traductions disponibles
Numéro d'article: 2662301 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Microsoft distribue Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) ou Microsoft SQL Server 2012 des correctifs dans un fichier téléchargeable unique. Les correctifs étant cumulatifs, chaque nouvelle version contient tous les correctifs et mettre à jour toutes les mises à jour de sécurité qui étaient fournis avec la précédente SQL Server 2008 R2 Service Pack 1 (SP1) ou Microsoft SQL Server 2012 release.

Symptômes

Envisagez le scénario suivant :
  • Vous installez une instance de Microsoft SQL Server 2008 R2 ou Microsoft SQL Server 2012 sur un ordinateur.
  • Instructions simultanées semblables aux suivantes sont exécutées dans l'instance :
    CREATE PROC p AS RETURN (
    query
    ); EXEC p;
    Ou bien, vous exécutez une requête qui contient le code suivant :

    IF EXISTS(
    subquery
    );
  • L'utilisation du processeur est élevée, et les threads de travail sont en état runnable.
  • La contention pour le QUERY_EXEC_STATS spinlock est élevé.
    Par exemple, le compteur de rotations, les collisions possibles et les valeurs de recul de la QUERY_EXEC_STATS spinlock augmenter rapidement.
    Remarque Pour plus d'informations sur comment faire pour surveiller le QUERY_EXEC_STATS spinlock, reportez-vous à la section « Plus informations ».

Dans ce scénario, baisse des performances peuvent se produire.

Cause

Ce problème dans la mesure où se produit SQL Server 2008 R2 ou SQL Server 2012 crée et détruit certaines structures de mémoire sur les statistiques globales au lieu de leur mise en cache. Cela provoque un goulot d'étranglement.

Résolution

Informations de mise à jour cumulative

SQL Server 2012

Le correctif de ce problème a été tout d'abord publié de mise à jour Cumulative 1 pour SQL Server 2012. Pour plus d'informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2679368 Package de mise à jour cumulative 1 pour SQL Server 2012
Remarque Les versions étant cumulatives, chaque nouvelle version de correctif contient tous les correctifs et correctifs de sécurité inclus avec la précédente 2012 de SQL Server version du correctif. Microsoft vous recommande d'envisager l'application la plus récente version du correctif qui comprendra ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2692828 Le 2012 SQL Server versions publiées après la publication de SQL Server 2012
Vous devez appliquer un correctif SQL Server 2012 pour une installation de SQL Server 2012.

Package de mise à jour cumulative 5 pour SQL Server 2008 R2 SP1

Le correctif de ce problème a été tout d'abord publié dans 5 mise à jour Cumulative. Pour plus d'informations sur la façon d'obtenir ce package de mise à jour cumulative pour SQL Server 2008 R2 SP1, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2659694 Package de mise à jour cumulative 5 pour SQL Server 2008 R2 SP1
Remarque Les versions étant cumulatives, chaque nouvelle version de correctif contient tous les correctifs et correctifs de sécurité inclus avec la précédente SQL Server 2008 R2 SP1 version du correctif. Nous vous recommandons l'application la plus récente version du correctif qui comprendra ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2567616 SQL Server 2008 R2 versions publiées après la publication de SQL Server 2008 R2 SP1

Plus d'informations

Pour contrôler le verrouillage spinlock QUERY_EXEC_STATS , réglez le délai et le nombre d'itérations en fonction de votre environnement dans le code suivant, puis exécutez-le :

SET NOCOUNT ON
CREATE TABLE #spins([Spinlock Name] varchar(50),Collisions numeric,Spins numeric,[Spins/Collision] float,[Sleep Time (ms)] numeric,Backoffs numeric, InsertTime datetime DEFAULT GETDATE())
DECLARE @counter int = 1
WHILE @counter < 10
      BEGIN
            INSERT INTO #spins ([Spinlock Name], Collisions, Spins, [Spins/Collision], [Sleep Time (ms)], Backoffs) EXECUTE ('DBCC SQLPERF (''SPINLOCKSTATS'') WITH NO_INFOMSGS')
            WAITFOR DELAY '00:00:05'
            SET @counter +=1
      END
SELECT * FROM #spins WHERE [Spinlock Name] = 'QUERY_EXEC_STATS' ORDER BY InsertTime
DROP TABLE #spins

Statut

Microsoft a confirmé qu'il s'agit d'un problème pour les produits Microsoft répertoriés dans la section « S'applique à ».

Propriétés

Numéro d'article: 2662301 - Dernière mise à jour: jeudi 12 avril 2012 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
Mots-clés : 
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2662301 KbMtfr
Traduction 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: 2662301
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.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com