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

Comment capturer et analyser les événements SQL Server

Lorsque vous travaillez en tant qu'administrateur de base de données SQL Server, vous devez avoir les compétences nécessaires pour plonger profondément dans l'océan du moteur SQL Server et trouver ce qui se passe en interne, afin de pouvoir détecter, dépanner et résoudre tout problème auquel vous pourriez être confronté.
Vous pouvez tirer parti des journaux écrits par le moteur SQL Server localement sous la forme de journaux SQL Server ou en externe sous la forme de journaux d'événements, mais vous ne pouvez pas les considérer comme la seule source de dépannage et de réglage. opérations.

SQL Server vous fournit un certain nombre de fonctionnalités intégrées qui peuvent être utilisées pour collecter les différents types d'événements SQL Server. Dans cet article, nous allons passer en revue ces fonctionnalités intégrées et considérer l'un des outils tiers gratuits les plus efficaces pouvant être utilisés pour collecter et analyser les événements SQL Server.

Profileur SQL

SQL Server Profiler est largement utilisé par les administrateurs et les développeurs de bases de données SQL Server pour collecter différents types d'événements concernant les requêtes exécutées sur l'instance SQL Server connectée, puis utiliser ces informations pour améliorer les performances des requêtes.

SQL Profiler vous offre la possibilité de capturer une grande variété d'événements, de spécifier les propriétés d'événement qui vous intéressent et de filtrer les données capturées en fonction des valeurs de propriété précédemment spécifiées. Vous pouvez déterminer quel utilisateur exécute quel type d'action sur quelle table de base de données, à partir de quelle machine et à quelle heure exactement. De plus, SQL Profiler affiche le nombre de ressources consommées et indique si l'action est terminée ou a échoué avec une erreur.

La collecte d'événements via SQL Profiler est effectuée soit en utilisant un certain nombre de modèles existants, soit en créant votre propre modèle personnalisé à l'aide des événements existants. Tout d'abord, vous devez vous connecter à l'instance SQL Server à partir de laquelle vous prévoyez de capturer les événements, en fournissant le nom de l'instance SQL Server, la méthode d'authentification et les informations d'identification requises pour se connecter à cette instance SQL Server, comme indiqué ci-dessous :

Après vous être connecté à l'instance SQL Server, il vous sera demandé de spécifier le modèle pour les événements à collecter, en fonction de l'objectif du processus de profilage, comme indiqué ci-dessous :

Vous pouvez voir sur l'image précédente que SQL Profiler vous offre une option pour enregistrer le résultat du traçage dans un fichier ou dans une table de base de données existante. Si aucun des modèles fournis ne correspond à vos besoins, vous pouvez facilement passer à la sélection d'événements tab et cochez pour afficher tous les événements et colonnes, puis filtrez les événements capturés avec les propriétés qui vous intéressent. Par exemple, vous pouvez filtrer pour capturer les événements provenant d'une base de données spécifique, d'un utilisateur de base de données, d'une table de base de données, d'une machine hôte, etc. activé, comme suit :

Une fois que vous avez sélectionné les événements qui vous intéressent, cliquez simplement sur Exécuter et commencez à recevoir des événements de la base de données sélectionnée, comme indiqué ci-dessous :

Tenez compte du fait que si vous ne définissez pas un filtre très précis pour collecter uniquement les événements qui vous intéressent, SQL Profiler collectera un grand nombre d'événements qui seront difficiles à lire et à analyser. De plus, ce n'est pas recommandé d'exécuter l'outil SQL Profiler sur l'environnement de production car il "mangera" les ressources du serveur et tuera ses performances. Si vous avez vraiment besoin de l'utiliser, essayez de réduire la portée des événements à capturer en utilisant des filtres précis.

Événements étendus

Afin de surmonter le problème de dégradation des performances causé par l'utilisation de l'outil obsolète SQL Profiler pour capturer les différents types d'événements SQL, une fonctionnalité de surveillance des performances légère, hautement évolutive et configurable a été introduite dans SQL Server 2008, qui peut être utilisée pour collecter des informations utiles. parmi le large éventail d'actions disponibles, avec la consommation de ressources SQL la plus faible possible, ce qui facilite le dépannage et le réglage des performances des requêtes SQL Server. Cette fonctionnalité de capture d'événements s'appelle SQL Server Événements étendus. .

La fonctionnalité Événements étendus est accessible via SQL Server Management Studio, à partir des Événements étendus sous l'option Gestion nœud. Pour créer une nouvelle session d'événements étendus, cliquez avec le bouton droit sur Sessions option, sous Événements étendus nœud et sélectionnez Nouvelle session comme ci-dessous :

À partir de la nouvelle session fenêtre, vous avez la possibilité de choisir parmi un certain nombre de modèles disponibles, avec plus de modèles prédéfinis que les modèles SQL Profiler, ou simplement d'utiliser un modèle vierge et de spécifier explicitement les événements qui vous intéressent, comme indiqué ci-dessous :

Depuis les Événements , vous pouvez filtrer les événements qui vous intéressent en fonction de la catégorie d'événements, puis choisir les propriétés de chaque événement que vous devez récupérer. De plus, vous pouvez créer un filtre personnalisé pour réduire la portée des événements capturés, comme indiqué ci-dessous :

Le stockage La page vous propose différentes options pour enregistrer le résultat de la session d'événements étendus. Dans cet exemple, nous conserverons le résultat de la trace dans un fichier d'événements étendus avec les paramètres configurés ci-dessous :

Après avoir personnalisé la session d'événements étendus pour répondre à vos exigences de surveillance, cliquez sur OK bouton pour créer la session. Une fois la session créée, elle ne commencera pas à capturer automatiquement les événements à moins que vous ne la configuriez pendant le processus de création de la session. Pour permettre à la session de commencer à capturer des événements, cliquez avec le bouton droit sur la session créée et sélectionnez Démarrer la session option, comme indiqué ci-dessous :

Pour afficher la session capturée, vous avez la possibilité d'ouvrir le fichier physique configuré précédemment pour stocker les événements, ou simplement de cliquer avec le bouton droit sur la session créée et de sélectionner Regarder les données en direct option, comme indiqué ci-dessous :

Une nouvelle fenêtre s'ouvrira, affichant les événements collectés avec les valeurs des propriétés pour chaque événement, comme ci-dessous :

Bien que vous puissiez créer facilement des événements étendus en quelques clics, vous rencontrez toujours des difficultés lorsque vous essayez de choisir le bon événement à surveiller, en raison de la complexité de la convention de dénomination des événements, ce qui rend difficile la compréhension du but de chaque événement. De plus, l'interface graphique dans laquelle les informations de session sont affichées n'est toujours pas conviviale, ce qui complique l'analyse des événements et de leurs propriétés. À partir de ce moment, le besoin d'un outil tiers plus convivial augmente, dont nous parlerons dans la prochaine section de cet article.

Profilateur d'événements dbForge

dbForge Event Profiler pour SQL Server est GRATUIT outil qui vous permet de capturer et d'analyser les événements SQL Server et de stocker les données d'événements dans un fichier de trace physique pour un examen ultérieur.

dbForge Event Profiler pour SQL Server surmonte le problème de dégradation des performances de SQL Profiler en s'exécutant avec les performances les plus élevées possibles et la charge minimale du serveur avec une prise en charge complète de la fonctionnalité d'événements étendus.

Ce qui rend l'outil de profilage d'événements dbForge Event Profiler pour SQL Server attrayant par rapport à la fonctionnalité d'événements étendus, c'est la mise en surbrillance de la syntaxe de la requête fonctionnalité qui n'est pas disponible dans la fonctionnalité Générateur de profils SQL ou Événements étendus. De plus, il offre la possibilité d'effectuer le filtrage et le tri opérations dans la grille avec des résultats de traçage.

dbForge Event Profiler pour SQL Server peut être facilement utilisé pour surveiller les différents types d'activités du moteur de base de données SQL Server, des services d'analyse et des services d'intégration, dépanner les requêtes T-SQL et les problèmes liés aux performances des transactions et surveiller les différentes erreurs SQL Server et avertissements.

De plus, le dbForge Event Profiler pour SQL Server peut être utilisé pour auditer les différentes activités des utilisateurs de la base de données SQL Server ou pour effectuer des tests de stress ou d'assurance qualité. Vous pouvez également simplement créer vos propres traces personnalisées et les enregistrer pour une utilisation future.

Afin d'utiliser dbForge Event Profiler pour SQL Server pour capturer les événements SQL Server, vous devez le télécharger à partir de la page de téléchargement dbForge, gratuitement, et l'installer sur votre serveur SQL ou votre machine à l'aide de l'assistant d'installation simple, comme ci-dessous :

Pour démarrer le processus d'installation, cliquez sur INSTALLER bouton de la Bienvenue page et spécifiez l'emplacement où vous souhaitez installer l'outil, à partir de la Sélectionner la destination page ci-dessous :

Après avoir spécifié l'emplacement d'installation, cliquez sur Suivant bouton. Dans les Raccourcis page, indiquez si vous envisagez de créer une icône de raccourci pour l'outil dbForge sur votre bureau, puis cliquez sur Suivant pour continuer :

Sur les associations de fichiers page, il vous sera demandé de spécifier l'extension des fichiers qui seront associés à l'outil dbForge. Sélectionnez l'extension des fichiers que vous prévoyez d'ouvrir à l'aide de cet outil, puis cliquez sur Suivant pour continuer :

Sur l'optimisation de démarrage page, passez en revue et sélectionnez la meilleure option pour l'utilisation des performances de l'outil, puis cliquez sur Suivant pour continuer :

Maintenant, le processus d'installation, basé sur vos sélections, va commencer, avec la barre de progression indiquant l'état du processus d'installation, comme indiqué ci-dessous :

Une fois l'installation de dbForge Event Profiler pour SQL Server terminée avec succès, l'assistant vous avertira et vous proposera une option pour démarrer l'outil directement après la fermeture de l'assistant d'installation, comme ci-dessous :

La page d'accueil du dbForge Event Profiler pour SQL Server est conviviale et toute personne familiarisée avec SSMS peut s'y adapter facilement. Pour démarrer une nouvelle trace, cliquez sur Nouveau option sur le côté droit de l'outil, comme ci-dessous :

Dans les Événements du serveur de profil fenêtre, vous devez fournir les informations de connexion qui seront utilisées pour se connecter à l'instance SQL Server qui sera surveillée. S'il s'agit de la première exécution de l'outil et qu'il n'y a pas de connexion précédemment enregistrée, cliquez sur Nouvelle connexion bouton comme indiqué ci-dessous :

Dans le Gestionnaire de connexions fenêtre, le Nouveau vous amènera à la fenêtre de connexion connue, où il vous sera demandé de fournir le nom de l'instance SQL Server, le mode d'authentification et les informations d'identification requises pour vous connecter à SQL Server. Après avoir fourni les informations de connexion, cliquez sur Tester la connexion pour vérifier si les informations que vous avez saisies sont valides, comme indiqué ci-dessous :

Après avoir fourni les informations de connexion à l'instance SQL Server, sélectionnez si vous souhaitez utiliser un modèle existant, dans une liste de modèles utiles qui servent la plupart des fonctionnalités de traçage, ou désélectionnez-le pour spécifier la liste des événements que vous souhaitez capturer à l'étape suivante. Vous pouvez également spécifier les propriétés du fichier de destination, comme suit :

Sur les événements à capturer page, vous trouverez une liste conviviale et bien catégorisée d'événements, qui sont décrits de manière significative, sans qu'il soit nécessaire de plonger profondément et d'essayer de comprendre sa signification, comme indiqué ci-dessous :

L'image ci-dessous montre également toutes les catégories d'événements disponibles, avec le nombre d'événements dans chaque catégorie. Maintenant, vous pouvez profiter de la compréhension de tous les événements disponibles par le nom de la catégorie, comme indiqué clairement ci-dessous :

Après avoir spécifié la liste des événements que vous souhaitez capturer, les Actions vous offre la possibilité de spécifier la liste des actions que vous souhaitez capturer dans la session d'événement en cours, comme indiqué ci-dessous :

Sur les filtres d'événements page, vous pouvez également dessiner vos propres filtres pour minimiser le nombre de lignes collectées afin de répondre à vos besoins et de faciliter l'analyse, comme indiqué ci-dessous :

Les Colonnes La page vous permet de spécifier les colonnes que vous prévoyez d'afficher dans la session d'événements en cours. Récupérer uniquement les colonnes contenant les informations que vous souhaitez capturer aidera à réduire considérablement la taille du fichier de trace et la largeur des lignes renvoyées, ce qui facilitera l'analyse des données capturées, comme indiqué ci-dessous :

Après avoir personnalisé votre session d'événement, vous pouvez commencer à capturer les événements en cliquant sur Exécuter bouton de l'image précédente. Après avoir démarré la session d'événements, l'outil commencera à capturer et à afficher les événements directement, comme indiqué ci-dessous :

Le grand avantage ici est que cliquer sur n'importe quel événement en affichera une description complète avec le script T-SQL affiché dans une police de couleur conviviale à l'intérieur d'une boîte séparée, ce qui le rend très facile à vérifier et à analyser, comme indiqué ci-dessous :

De plus, dbForge Event Profiler pour SQL Server peut fonctionner comme SSMS en offrant une option pour écrire une nouvelle requête T-SQL et l'exécuter sur l'instance SQL Server connectée, comme indiqué ci-dessous :

L'outil affiche également les données renvoyées dans une grille utile qui affiche chaque nom de colonne, type de données et valeur, comme suit :

La plupart des administrateurs de base de données SQL Server ont rencontré une situation lorsqu'ils ont essayé d'exécuter un gros fichier SQL Server à l'aide de SSMS qui a échoué avec l'erreur OutOfMemory. dbForge Event Profiler pour SQL Server surmonte ce problème en fournissant une fonctionnalité permettant d'exécuter n'importe quel script T-SQL volumineux dans un fichier SQL. Ce que vous devez faire est de sélectionner uniquement Exécuter un grand script dans le menu Base de données, puis sélectionnez l'emplacement de ce fichier de script, la base de données sur laquelle ce fichier sera exécuté et l'encodage utilisé dans ce fichier, comme indiqué clairement ci-dessous :

Conclusion

À partir de tous les exemples précédents, vous pouvez voir comment l'outil tiers GRATUIT dbForge Event Profiler for SQL Server peut être utilisé pour capturer et analyser les différents types d'événements SQL Server en surmontant tous les inconvénients des outils de capture d'événements courants. C'est un GRATUIT outil et il vaut vraiment la peine d'être utilisé.