Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Utilisation de Spotlight Cloud pour résoudre le blocage de SQL Server

Le blocage de SQL Server dans une base de données se produit lorsqu'une transaction détient un verrou sur une ressource et empêche une ou plusieurs connexions de fonctionner sur cette même ressource. La deuxième connexion doit attendre que le verrou soit libéré avant de pouvoir continuer. Ceci est fait pour garantir le composant d'isolation d'ACID, ce qui signifie que les transactions simultanées ne sont pas visibles les unes des autres tant qu'elles ne sont pas terminées. Le blocage dans SQL Server peut faire des ravages sur les performances dans n'importe quel environnement.

L'une des tâches des administrateurs de base de données consiste à identifier la requête qui bloque, à y remédier, puis à aller plus loin pour déterminer la cause première. Rechercher la cause profonde, surtout après coup, peut être une tâche très difficile. Pour la plupart, cela signifie un processus très long d'enracinement via les vues de gestion dynamique de SQL Server telles que s ys.dm_exec_requests ou en exécutant des procédures système comme sp_who2 pour connaître les détails des identifiants de processus système (SPID) impliqués dans la blockchain. Spotlight Cloud peut réduire considérablement vos efforts pour identifier ces événements bloquants.

Utilisation de la surveillance de la base de données pour identifier les blocs SQL Server

Figure 1 :Tableau de bord de présentation

À partir du tableau de bord Présentation, Spotlight Cloud fournit une vue claire de l'ensemble de l'environnement. Il affiche des métriques telles que le nombre de sessions, les processus, l'utilisation de la mémoire, les consommations de disques et les attentes en un coup d'œil. Plus important encore, il montre clairement l'activité de blocage; au centre de la figure 1, vous pouvez clairement voir qu'il y a actuellement deux processus bloqués.

Pour un DBA, entrer dans les détails est nécessaire pour résoudre les problèmes de blocage. Spotlight Cloud nous donne la possibilité d'approfondir les détails de la session en choisissant simplement le menu déroulant dans Vue d'ensemble, comme illustré à la figure 2.

Figure 2 :Liste déroulante de la vue d'ensemble

Spotlight Cloud vous permet de voir facilement quelles sessions sont bloquées et quelles déclarations sont impliquées. Dans la figure 3, vous pouvez voir que les SPID 59 et 65 sont tous deux bloqués (indiqués en surbrillance orange autour de l'état), ce qui correspond au nombre bloqué. Vous remarquerez également que Spotlight Cloud continue de fournir des détails récapitulatifs sur l'état actuel de notre instance, ce qui nous permet de garder un œil sur les compteurs importants tout en plongeant dans les problèmes de performances.

Utilisation de Spotlight Cloud SQL Server Monitoring pour résoudre les problèmes de blocage

Figure 3 :Tableau de bord des sessions

Le tableau de bord Sessions (comme le montre la figure 3) nous donne des informations vitales dont nous avons besoin pour résoudre le problème. Ici, vous pouvez trouver des informations importantes telles que l'utilisateur qui exécute les instructions, la base de données affectée et le moment où la session a été déclarée. La profondeur des détails fournis est un véritable gain de temps pour les DBA qui ont besoin de réponses rapides à la cause du blocage, afin qu'ils puissent le résoudre. Vous voyez non seulement que vous avez deux transitions bloquées, mais nous pouvons également voir qu'il s'agit d'instructions UPDATE sur la même table exécutées par le compte Network Services sur la base de données Sales. Le relevé réel est affiché dans le coin inférieur droit. Enfin, nous pouvons voir à la fois le SPID actif et le SPID par lequel il est bloqué.

Vers le coin supérieur droit de la figure 3, en texte bleu, Spotlight Cloud vous indique où aller ensuite dans votre enquête. Le produit dans chaque couche donne un chemin clair sur la façon de plonger encore plus profondément. En cliquant sur le lien Investigate in Workload Analyzer, vous pouvez voir ce qui a invoqué le SPID 61 qui se trouve être un bloqueur de leads pour le SPID 65.

Figure 4 :Analyseur de charge de travail (c'est là que nous souhaitons développer les sessions bloquées)

L'analyseur de charge de travail vous donne une dimension d'exploration qui vous permet d'accéder à des ressources spécifiques telles que le blocage. Dans la figure 4, vous pouvez voir comment nous plongeons plus loin en cliquant sur les deux flèches d'expansion dans le coin de la section Sessions bloquées.

Figure 5 :Détails des sessions bloquées

Maintenant que vous connaissez la base de données impliquée, vous pouvez creuser un peu plus loin. Dans la navigation de gauche, vous pouvez explorer la base de données des ventes. Ici, vous pouvez voir les SPID 61 et 64, y compris l'état actuel. Ces deux ID de processus système sont bloquants et notez que le SPID 59 est désormais également bloqué par le SPID 64. Cette vue vous permet de garder une longueur d'avance sur le blocage pendant que vous continuez à enquêter.

Dans la moitié inférieure de la figure 5, vous pouvez voir dans le mappage de session bloquée qu'il vous indique les détails du SPID 61, qui dans ce cas est notre bloqueur de plomb. Le coupable fait en fait partie d'un travail d'agent SQL en cours d'exécution, ce qui est logique en fonction de l'utilisateur que nous avons trouvé en train d'exécuter l'instruction. Si vous vous souvenez, il s'agissait du compte de service réseau, NT AUTHORITY\NETWORK SERVICE. Sur cette instance, le service de l'agent SQL s'exécute sous cet ensemble particulier d'informations d'identification.

L'étape suivante consiste à découvrir quelles tâches sont en cours d'exécution et à voir si vous pouvez supprimer la tâche pour arrêter le blocage. Normalement, vous vous rendriez dans SQL Server Management Studio pour examiner l'agent SQL et examiner les travaux, mais Spotlight vous facilite la tâche et vous offre également une vue complète des travaux. Vous pouvez le trouver en cliquant sur la flèche à côté des mots "Workload Analyzer" en haut, comme vous l'avez fait lorsque vous avez navigué de l'aperçu aux sessions.

Figure 6 :Liste déroulante de l'analyseur de charge de travail

Prévenir les futurs blocages de SQL Server

Rechercher un blocage prend du temps, et parfois, pendant que nous recherchons un problème particulier, le blocage se résout de lui-même. Dans ce cas, la tâche en cours d'exécution s'est terminée et les mises à jour bloquées ont pu s'exécuter. Bien que le problème immédiat n'existe plus, vous devez continuer à rechercher la cause première pour vous assurer de pouvoir l'éviter à l'avenir.

Étant donné que vous avez déjà identifié le SPID 61 comme le travail en cours d'exécution et que le temps a passé, vous devez maintenant consulter l'historique. Pour revoir l'historique, changez simplement la plage de dates affichée à la plage de temps du blocage actif. Dans la figure 7, vous pouvez voir la plage de dates dans le coin droit, vous pouvez cliquer sur le menu déroulant et ajuster les heures en conséquence. Ensuite, vous souhaitez rechercher le SPID 61 à l'aide de la fonctionnalité de recherche. Chaque environnement est différent, donc ce que vous faites avec ces informations dépendra désormais. Que vous ajustiez le calendrier du travail, apportiez des modifications aux index, au code ou aux configurations, cela dépendra entièrement de vous.

Tâches de la figure 7

Figure 8 :Blocs longs

Certains blocs vont et viennent si rapidement qu'ils n'ont aucun effet significatif sur les performances. Quand ils restent plus longtemps, nous devons le savoir rapidement. Spotlight Cloud dispose d'une alarme de "verrouillage de longue durée" qui avertit l'utilisateur des blocs qui ne disparaissent pas.

Figure 9 :Dimension de l'objet bloqué

Le blocage est le symptôme de certains problèmes plus importants et il faut souvent des perspectives différentes pour arriver à la cause première. La dimension d'objet bloqué dans l'analyseur de charge de travail Spotlight Cloud permet à l'utilisateur de déterminer rapidement les objets qui génèrent l'activité la plus bloquante pour une instance donnée.

Identifier le blocage et en rechercher la cause est la partie la plus difficile pour les administrateurs de bases de données. Spotlight Cloud Professional nous permet d'accéder à ces informations rapidement et efficacement. Lorsque le temps résout le problème actif, Spotlight Cloud nous permet de continuer à enquêter pour trouver une cause profonde et nous donne finalement les informations dont nous avons besoin pour prendre des décisions éclairées sur la façon de prévenir de futurs événements.

Vous voulez voir Spotlight Cloud en action ? Commencez votre essai gratuit de 30 jours dès aujourd'hui.