SQL Server 2016 : Diagnostic

Consulter les statistiques d'attente

Testez gratuitement nos 1324 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Apprenez à utiliser les vues de gestion dynamique. Ainsi, vous obtiendrez des statistiques par type sur les attentes.
07:58

Transcription

On l'a vu, il y a une deuxième vue de gestion dynamique, qui commence par « wait ». C'est « dm_os_wait_stats ». Elle est très intéressante parce que, comme son nom l'indique, elle maintient des statistiques sur les attentes. Une première requête. On voit ce que ça donne. On voit, ici je suis en SQL Server 2016, que j'ai 872 résultats. Les résultats sont par wait_type, j'ai 872 types d'attente possible en SQL Server 2016. Je vais avoir, pour chaque type d'attente, le nombre d'attentes que j'ai eu, le nombre de fois que cette attente s'est déclenchée si vous voulez, le nombre total de millisecondes pendant lequel on a attendu sur ce type d'attente, quel était le temps maximum, quelle était la fois où l'attente a duré le plus longtemps, toujours en millisecondes, et quel est le temps de signal, je vais vous en parler dans une seconde, toujours en millisecondes. Donc, ce sont des statistiques qui sont cumulées. Depuis quand, me direz-vous, depuis le démarrage de votre serveur SQL. Vous avez une commande qui vous permet de vider ces statistiques pour repartir de zéro sans redémarrer SQL Server. Mais à la base, si vous n'avez jamais utilisé cette commande sur votre serveur, eh bien, c'est depuis le démarrage du serveur. Ce seront des statistiques intéressantes si votre serveur n'a pas redémarré ce matin, si ça fait plusieurs semaines qu'il est en activité, par exemple. Et c'est très intéressant parce qu'on va avoir un cumul, on va savoir, par exemple ici, sur ce type d'attente qui est un verrou, on a eu trois attentes pour approximativement deux secondes d'attente au total. Ce qui n'est pas du tout intéressant, on est d'accord. Donc, on va faire une requête plus compliquée pour analyser les attentes qu'a vécu notre serveur SQL. Pour ce faire, je vous propose d'aller chercher une requête déjà existante. Ici, je prends un navigateur, je vais chercher « Paul Randal », Paul Randal est un spécialiste de SQL Server, je vais vous en parler, et il a écrit un article de blog qui s'appelle « Tell Me Where It Hurts » « dis-moi où ça fait mal ». Je le cherche toujours comme ça. Ça va me montrer directement son article de blog ici, et dans cet article, je n'ai pas forcément besoin de regarder l'article, si vous ne comprenez pas forcément l'anglais, allez directement à la requête. Vous prenez la requête qui a été créée par Paul Randal, vous faites un copier-coller, et vous reprenez la requête telle quelle. Je vous explique en deux mots. Déjà, Paul Randal est un vrai spécialiste de SQL Server puisque c'est un ancien de Microsoft qui a créé sa société, et chez Microsoft, il était responsable du développement du moteur de stockage sur SQL Server 2008. Donc il sait exactement de quoi il parle, il connaît bien le code de SQL Server. C'est donc un des plus grands spécialistes mondiaux de SQL Server, on peut dire. Ensuite, sa requête est très intéressante parce qu'elle va calculer des statistiques sur nos attentes. Et puis elle va, comme vous le voyez dans cette partie de clause WHERE, enlever les types d'attente inutiles parce que vous avez beaucoup de processus qui sont en tâche de fond et qui attendent, par définition, la prochaine occurrence de leur exécution. Et il y a plein de types d'attente, CHECKPOINT_QUEUE, IDLE_WAIT, qui ne sont pas intéressantes, et qui sont des attentes du système. Donc, cette requête les retire, et puis, ensuite, il y a un calcul ici, en secondes, des attentes cumulées. Bref, j'exécute ça, on n'aura certainement pas grand-chose sur notre serveur car ce n'est pas un serveur de production, mais c'est juste pour voir le résultat. Et ce que Paul Randal a fait dernièrement, c'est qu'il a aussi créé sur son site une sorte d'encyclopédie des attentes pour qu'on comprenne chaque type d'attente. Et vous avez le lien, ici, sur son site, avec la description de l'attente, en anglais, bien entendu. Voyons juste le résultat. On a les dix premiers types d'attente. On a ici le pourcentage calculé sur ces dix premiers de cette attente. Par exemple, cette attente a généré 63 % de toutes les attentes du système, donc elle est importante. Bon, il se trouve que ce sont des évènements étendus, donc ce n'est pas vraiment très important en soi. Je vais vous parler de quelques types d'attente importants à comprendre, donc on va aborder bien sûr ce sujet. Mais avec cette requête, ça va vous permettre de faire une analyse très intéressante, très riche de votre système pour dire que mon système est plutôt faible à cause de ce type d'attente et donc que pourrais-je faire pour améliorer les choses. Mais on va parler de ça. Une note entre parenthèses par rapport à ça, pour les vues de gestion dynamique qu'on utilise dans cette formation et par exemple dans cette requête en particulier, vous pouvez aller chercher, par exemple sur Google, « sql trismegiste » c'est un programme que j'ai créé qui est gratuit et libre. Donc, je vous emmène ici. C'est un programme qui est disponible sur GitHub vous avez les sources, c'est du C#, en .NET, et c'est un programme qui vous permettra d'exécuter des requêtes d'analyse pour obtenir rapidement les résultats. Vous pouvez utiliser SQL Trismegiste en le téléchargeant, je vais vous montrer comment ça marche. Je suis ici sur SQL Trismegiste, je vais aller chercher dans les distributions, je vais prendre la dernière version, ici je vais cliquer sur « View Raw », c'est un zip, donc dans GitHub pour obtenir le document binaire on va faire View Raw, je vais enregistrer, je vais ouvrir. J'ai un dossier et je vais revenir en arrière, je vais simplement l'extraire. Et je vais simplement lancer le programme. Donc, le programme va vous permettre de vous connecter à un serveur en vous authentifiant. Donc, je vais me connecter à mon serveur qui s'appelle SQL2016, c'est l'instance sur ma machine. Donc... ... voilà, je me connecte. J'ai la liste des bases de données, je sélectionne celles qui m'intéressent, et je vais faire « Lancer l'analyse ». Et ça va exécuter un certain nombre de requêtes d'analyses sur la base de données sur le serveur, et obtenir les résultats, et beaucoup de ces requêtes portent sur des vues de gestion dynamique. Notamment, j'ai ici « attentes SQL server », je ne sais pas si le résultat est déjà disponible, non, parce que c'est en train de tourner, mais si vous cliquez sur attentes SQL server vous avez le résultat de la requête de Paul Randal. Ça peut être une façon plus pratique ou plus rapide d'obtenir des informations de diagnostic. Évidemment, mon outil ne fait aucune explication donc cette formation est intéressante pour ça. Si vous utilisez SQL Trismegiste, vous récupérez les informations de chaque requête et puis grâce à cette formation, vous comprendrez mieux comment les interpréter, bien sûr. Un dernier mot sur SQL Trismegiste, si je reviens sur le répertoire, vous avez dans ce répertoire CorpusHermeticum des fichiers XML, ce sont les requêtes elles-mêmes, vous pouvez l'ouvrir, voir les requêtes que j'exécute et vous pouvez même créer vos propres fichiers XML avec de nouvelles requêtes pour qu'elles soient intégrée dans l'outil. Je vous laisse aller voir sur la page GitHub si vous voulez l'utiliser où ceci est expliqué. C'était une parenthèse pour vous simplifier la vie si vous voulez exécuter cette requête ou d'autres qu'on va voir dans cette formation.

SQL Server 2016 : Diagnostic

Prenez en main les outils de diagnostic intégrés à SQL Server. Soyez en mesure de comprendre et d'analyser les problèmes de performance rencontrés le plus fréquemment.

1h58 (20 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :14 déc. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !