1. Présentation de SQL Server Profiler
1.1 Qu'est-ce que SQL Server Profiler et pourquoi en avons-nous besoin ?
SQL Server Profiler est un outil d'interface utilisateur graphique permettant de surveiller et de capturer les événements qui se produisent dans SQL ServerCe puissant diagnosticostL'outil ic permet aux administrateurs et développeurs de bases de données d'observer l'activité du moteur de base de données en temps réel, ce qui aide à identifier les goulots d'étranglement des performances, à résoudre les problèmes d'application et à auditer les événements de sécurité.
1.2 SQL Server Profiler en 2025 : État actuel et alternatives
Microsoft a déprécié SQL Server Profiler staravec SQL Server 2016, recommandant Événements étendus comme technologie de remplacement. Toutefois, l'outil reste disponible actuellement. SQL Server versions incluant SQL Server 2022 et reste largement utilisé par les professionnels des bases de données.
1.3 À qui s'adresse ce guide
- Ce guide s'adresse aux administrateurs de bases de données qui doivent surveiller SQL Server Dans certains cas, diagnostiquer les problèmes de performance et garantir la fiabilité du système. Les administrateurs de bases de données y trouveront des conseils pratiques pour la capture des traces, l'analyse des événements et la mise en œuvre de stratégies de surveillance.
- Les développeurs d'applications ont tout intérêt à comprendre comment leur code interagit avec SQL ServerLe profileur SQL aide les développeurs à identifier les requêtes inefficaces, à valider le comportement des applications et à déboguer les erreurs liées à la base de données.
- Les analystes et consultants en performance découvriront des techniques avancées d'analyse de la charge de travail, de planification des capacités et d'optimisation des systèmes. La couverture exhaustive de la configuration, du filtrage et de l'analyse des traces permet des évaluations approfondies des performances des bases de données.
2. Compréhension SQL Server Principes fondamentaux du profileur
2.1 Comment SQL Server Profiler Works
SQL Server Profiler fonctionne comme une application client qui se connecte au moteur SQL Trace exécuté dans SQL ServerLorsque vous créez une trace, le moteur de base de données surveille les événements spécifiés et les enregistre conformément à votre configuration. Correctement configuré, le moteur de trace collecte les données d'événements avec un impact minimal sur les performances du serveur.
L'infrastructure de traçage SQL sous-jacente utilise des points d'entrée d'événements légers au sein du moteur de base de données. Lorsqu'un événement correspondant à votre définition de traçage se produit, le moteur capture les informations pertinentes et les envoie à l'interface du Profiler ou les enregistre dans un fichier ou une table. Cette architecture permet une collecte de données flexible sans modifier le code de l'application.
2.2 Concepts clés et terminologie
Evènements 2.2.1
Les événements représentent des événements spécifiques au sein SQL Server que le moteur de traçage peut enregistrer. Chaque événement correspond à une opération de base de données ou à une activité système particulière. SQL Server Profiler organise les événements en catégories logiques pour une configuration plus facile.
Les catégories d'événements courantes incluent T-SQL pour l'exécution des requêtes, les procédures stockées pour les appels de procédures, les verrous pour la surveillance de la concurrence et les erreurs et avertissements pour le suivi des exceptions. Le choix des événements appropriés détermine les informations capturées par la trace et influe directement sur son utilité et son impact sur les performances.
Comprendre les types d'événements vous aide à configurer des traces efficaces. Les événements RPC:Completed enregistrent la fin des appels de procédure distante, les événements SQL:BatchCompleted suivent les lots de requêtes ad hoc et les événements Lock:Deadlock identifient les occurrences de blocage. Choisissez les événements qui correspondent à vos objectifs spécifiques de dépannage ou de surveillance.
2.2.2 Colonnes de données
Les colonnes de données définissent les informations que la trace enregistre pour chaque événement. Les colonnes courantes incluent TextData pour l'instruction SQL proprement dite, Duration pour le temps d'exécution, CPU pour l'utilisation du processeur, Reads pour les lectures sur disque logique et Writes pour les écritures sur disque logique.
Les colonnes essentielles varient selon le cas d'utilisation. Le dépannage des performances nécessite généralement les colonnes Durée, CPU, Lectures et Écritures. L'audit de sécurité nécessite les colonnes Nom de connexion, Nom de base de données et Nom d'objet. Le débogage des applications bénéficie des colonnes Nom d'application, SPID et Erreur.
Sélectionner uniquement les colonnes nécessaires réduit la surcharge liée au traçage et simplifie l'analyse. Évitez de capturer toutes les colonnes disponibles, sauf si cela est absolument nécessaire. Chaque colonne supplémentaire augmente la quantité de données collectées et traitées, ce qui peut impacter les performances du serveur.
Filtres 2.2.3
Les filtres limitent les événements capturés par la trace selon des critères spécifiés. Correctement configurés, ils réduisent considérablement le volume de données de la trace, facilitant ainsi l'analyse et minimisant l'impact sur les performances. Les filtres évaluent les données des événements avant leur capture, évitant ainsi la collecte de données inutiles.
Les critères de filtrage courants incluent le nom de la base de données pour cibler des bases de données spécifiques, le nom de l'application pour isoler des applications particulières, la durée pour ne capturer que les opérations lentes et le nom d'utilisateur pour suivre des utilisateurs spécifiques. La combinaison de plusieurs filtres permet de créer des définitions de trace précises qui capturent exactement ce dont vous avez besoin.
Un filtrage optimisé pour les performances est essentiel en environnement de production. Filtrez systématiquement par DatabaseName ou ApplicationName afin d'éviter de capturer l'activité système. Définissez des seuils de durée minimale pour ignorer les requêtes rapides. Utilisez les filtres TextData avec précaution, car ils nécessitent des comparaisons de chaînes de caractères, ce qui engendre une surcharge.
2.2.4 Modèles de traces
Les modèles de trace proposent des sélections préconfigurées d'événements, de colonnes et de filtres pour les scénarios courants. SQL Server Profiler inclut plusieurs modèles intégrés qui servent detarPoints clés pour la création de traces. Les modèles personnalisés enregistrent vos configurations pour une réutilisation sur plusieurs sessions de traçage.
Le modèle Standard capture un ensemble général d'événements adaptés à la surveillance de base. Le modèle T-SQL se concentre sur l'exécution des requêtes avec une surcharge minimale. Le modèle Optimisation collecte les événements spécifiquement destinés à l'analyse de l'Assistant d'optimisation du moteur de base de données. Chaque modèle offre un équilibre entre la collecte d'informations et l'impact sur les performances.
La création de modèles personnalisés permet de gagner du temps et garantit la cohérence des analyses lors des sessions de traçage. Configurez une trace avec vos événements, colonnes et filtres préférés, puis enregistrez-la comme modèle. Les modèles personnalisés s'avèrent particulièrement utiles pour le dépannage régulier de problèmes similaires.
3. Obtenir Started avec SQL Server Profiler
3.1 Configuration système requise et prérequis
SQL Server Profiler est fourni avec SQL Server Management Studio et prend en charge tous les services actuellement maintenus SQL Server versions, de SQL Server 2016 à 2022.
Les exigences d'autorisation déterminent qui peut créer et exécuter des traces. Les membres du rôle serveur fixe sysadmin ont un accès illimité à SQL Server Fonctionnalités de profilage. Pour les utilisateurs non administrateurs système, l'autorisation ALTER TRACE permet de créer et de gérer des traces.
Des considérations liées au réseau s'appliquent lors du traçage de serveurs distants. Les traces côté client nécessitent une connectivité réseau continue entre votre poste de travail et le serveur distant. SQL Server En cas d'interruption de la connexion, le suivi côté client est interrompu, ce qui peut entraîner la perte de données enregistrées. Le suivi côté serveur, quant à lui, évite cet inconvénient car il s'exécute intégralement sur le serveur de base de données.
3.2 Comment lancer SQL Server Profiler
3.2.1 Starting de SQL Server Studio de gestion (SSMS)
Suivez ces étapes pour lancer SQL Server Profiler depuis SSMS :
- Ouvrez SQL Server Management Studio et connectez-vous à n'importe quel SQL Server exemple.
- Cliquez sur Outils menu dans la barre de menu supérieure.
- Choisir SQL Server Profiler Dans le menu déroulant.
- Le SQL Server L'application Profiler s'ouvre dans une nouvelle fenêtre.
3.2.2 Starting depuis Windows StarMenu
L’accès SQL Server Profiler directement depuis Windows en suivant ces étapes :
- Cliquez sur les fenêtres Commencer .
- Type SQL Server Profiler dans la boîte de recherche.
- Choisir SQL Server Profiler à partir des résultats de la recherche.
- L'application se lance sans aucune connexion active.
Alternativement, naviguez à travers le Start menu hierarchy :
- Ouvrez le Commencer menu.
- Localisez le Microsoft SQL Server Outils dossier.
- Développez le dossier et cliquez SQL Server Profiler.
3.2.3 Connexion à SQL Server Cas
Après le lancement SQL Server Profiler, établissez une connexion en suivant ces étapes :
- Cliquez à nouveau sur Fichier dans la barre de menu.
- Choisir Nouveau tracé Dans le menu déroulant.
- Le Connecter au serveur de dialogue apparaît.
- Entrez le nom de votre serveur dans le champ Nom du serveur champ.
- Choisissez authentification windows or SQL Server Authentification.
- Si vous utilisez SQL Server Authentification, veuillez saisir vos identifiants de connexion.
- Cliquez à nouveau sur Connexion établir la connexion.
Pour les connexions à distance, spécifiez le nom complet du serveur, y compris le nom de l'instance si applicable.cable. Utilisez le format NOMSERVEUR\NOMINSTANCE pour les instances nommées. Vérifiez la connectivité réseau et les paramètres du pare-feu en cas d'échec des tentatives de connexion.
4. Création et configuration SQL Server Traces
4.1 Créer votre première trace à l'aide d'un modèle
Créez votre première trace en suivant ces étapes :
- Lancement SQL Server Profileur.
- Cliquez à nouveau sur Fichier -> Nouveau tracé et connectez-vous à votre tarobtenir le serveur.
- Le Propriétés de trace de dialogue apparaît.
- Entrez un nom descriptif dans le champ Nom de la trace champ.
- Sélectionnez un modèle parmi les Utiliser le modèle menu déroulant.
- Choisissez le Standard (par défaut) Modèle pour la surveillance générale. Ou un autre modèle pour d'autres usages. Le modèle fournit des événements, des colonnes et des filtres préconfigurés pour les scénarios courants.
- Cliquez à nouveau sur Courir à start capture immédiate des événements.
4.2 Personnalisez votre trace
Bien souvent, les modèles ne répondent pas à vos besoins. Dans ce cas, vous pouvez personnaliser entièrement votre trace :
- Dans l' Propriétés de trace dialogue.
- Sélectionnez le Blanc modèle issu du Utiliser le modèle menu déroulant.
- Cliquez sur Sélection d'événements Dans l'onglet « Événements », vous pouvez désormais personnaliser tous les événements, colonnes de données et filtres selon vos besoins. Nous les aborderons dans les sections suivantes.
4.3 Sélection des événements à capturer
Vous pouvez sélectionner un événement dans le Sélection d'événements languette:
- Cliquez sur + Cliquez sur l'icône à côté de la catégorie Événement pour la développer.
- Cochez la case en regard de l'événement pour le sélectionner.
4.3.1 Comprendre les catégories d'événements
SQL Server Profiler organise les événements en catégories pour un regroupement logique. La catégorie Procédures stockées inclut les événements d'exécution de procédures, notamment SP:StarLes événements ting, SP:Completed et SP:StmtCompleted suivent les appels de procédures stockées et l'exécution d'instructions individuelles au sein de ces procédures.
La catégorie TSQL capture l'exécution de requêtes ad hoc avec des événements tels que SQL:BatchStarting et SQL:BatchCompleted. Ces événements suivent les requêtes soumises directement à SQL Server en dehors des procédures stockées.
La catégorie « Verrous » surveille les événements liés à la concurrence, notamment : Verrou acquis, Verrou libéré, Verrou interblocage et Verrou expiré. Utilisez ces événements pour diagnostiquer les problèmes de blocage et d’interblocage qui affectent les performances de l’application.
La catégorie Erreurs et avertissements enregistre les événements exceptionnels, notamment les exceptions, les alertes et les messages d'erreur utilisateur. Ces événements permettent d'identifier les erreurs d'application et SQL Server Avertissements lors des sessions de traçage.
4.3.2 Choisir les bons événements pour votre scénario
La surveillance des performances nécessite des événements qui capturent la consommation des ressources. Sélectionnez RPC:Completed et SQL:BatchCompleted pour suivre l'exécution des requêtes. Incluez les colonnes Durée, CPU, Lectures et Écritures pour mesurer l'utilisation des ressources. Ces événements constituent la base de l'identification des goulots d'étranglement des performances.
L'audit de sécurité exige le suivi des événements d'authentification et d'autorisation. Sélectionnez « Audit de connexion », « Audit de déconnexion », « Audit d'échec de connexion » et « Objet ouvert » pour surveiller l'accès à la base de données. Incluez les colonnes NomLogin, NomDatabase et NomObject pour identifier les utilisateurs ayant accédé à quelles ressources.
Les scénarios de débogage bénéficient d'une capture complète des événements. Incluez les événements de procédures stockées, les événements de lots SQL et les événements d'erreur pour tracer l'intégralité des flux d'exécution. Capturez un contexte supplémentaire avec SPID, ApplicationName et H.ostNommez les colonnes pour corréler les événements avec des sessions spécifiques.
4.4 Configuration des colonnes de données
Par défaut, lorsque vous sélectionnez un événement, toutes ses colonnes de données sont sélectionnées (cochées). Vous pouvez désélectionner les colonnes inutiles pour réduire la charge et simplifier l'analyse.
Les colonnes essentielles pour chaque trace comprennent EventClass pour identifier le type d'événement, TextData pour capturer l'instruction SQL réelle, LoginName pour identifier l'utilisateur exécutant l'exécution, et StarHeure d'horodatage de l'événement. Ces colonnes fournissent un contexte fondamental pour chaque événement capturé.
Les colonnes relatives aux performances mesurent la consommation de ressources. La durée indique le temps d'exécution d'un événement en microsecondes. Le temps processeur est indiqué en millisecondes. Le nombre de lectures comptabilise les pages logiques lues. Le nombre d'écritures comptabilise les pages logiques écrites. Ces indicateurs permettent d'identifier les opérations gourmandes en ressources qui nécessitent une optimisation.
Les colonnes Sécurité et Audit suivent les schémas d'accès aux données. DatabaseName identifie la base de données consultée. ObjectName précise la table ou l'objet concerné. ApplicationName indique l'application à l'origine de l'activité. Ensemble, ces colonnes fournissent des pistes d'audit complètes.
4.5 Configuration des filtres pour réduire le bruit
4.5.1 Critères de filtrage communs
Configurez les filtres en utilisant l'approche suivante :
- Ouvrez le Propriétés de trace dialogue.
- Cliquez sur Sélection d'événements languette.
- Cliquez à nouveau sur Filtres de colonnes bouton en bas à droite.
- Sélectionnez une colonne dans la liste de gauche.
- Configurez les critères de filtrage dans le panneau de droite.
- Cliquez à nouveau sur OK pour appliquer le filtre.
Les filtres de nom d'application isolent l'activité d'applications spécifiques. Développez la colonne ApplicationName dans la boîte de dialogue de filtre, saisissez le nom de votre application dans le champ J'aime champ, et SQL Server Profiler ne capture que les événements de cette application. Ce filtre s'avère précieux pour le dépannage des problèmes spécifiques à une application.
Les filtres de nom de base de données limitent la capture à des bases de données spécifiques. Filtrez par DatabaseName pour exclure l'activité de la base de données système et vous concentrer sur les bases de données de votre application. Saisissez les noms des bases de données dans le champ prévu à cet effet. J'aime or Égal champ selon que vous ayez besoin d'une correspondance générique.
Les filtres de durée capturent uniquement les opérations lentes. Définissez un seuil minimum dans le Meilleur que ou égal Ce champ se trouve sous la colonne Durée. Par exemple, une valeur supérieure ou égale à 1000 ne capture que les événements d'une durée supérieure à une seconde, excluant ainsi les requêtes rapides.
Les filtres par nom d'utilisateur permettent de suivre l'activité d'utilisateurs spécifiques. Filtrez par nom d'utilisateur pour surveiller certains utilisateurs de la base de données. Cette méthode permet d'identifier les utilisateurs qui exécutent des requêtes problématiques ou accèdent à des données sensibles.
4.4.2 Meilleures pratiques de filtrage
Un filtrage efficace équilibre la capture des données et l'impact sur les performances. Appliquez toujours au moins un filtre pour éviter de capturer une activité système excessive. Les filtres DatabaseName et ApplicationName doivent être vos filtres préférés.tarpoint de départ pour most traces.
Évitez les traces trop larges en environnement de production. Les traces non filtrées capturent d'énormes volumes de données, ce qui peut dégrader les performances du serveur et rendre l'analyse impossible. Définissez des critères de filtrage spécifiques qui tarDéfinissez vos objectifs de dépannage.
Testez les filtres avant leur déploiement en production. Effectuez d'abord des analyses sur les environnements de développement ou de test afin de vérifier que les filtres capturent les événements attendus sans surcharge excessive. Ajustez les critères de filtrage en fonction du volume de données capturées.
4.5 Utilisation des modèles de traçage
4.5.1 Présentation des modèles intégrés
Le modèle Standard offre une capture d'événements équilibrée, adaptée à la surveillance générale. Il inclut les événements d'exécution de requêtes courants, les appels de procédures stockées et le suivi des erreurs de base. Utilisez ce modèle si vous avez besoin d'une visibilité complète sans savoir précisément quoi rechercher.
Le modèle T-SQL se concentre spécifiquement sur l'exécution des requêtes avec une sélection minimale d'événements. Il capture les événements SQL:BatchCompleted et RPC:Completed avec les colonnes essentielles pour l'analyse des performances. Ce modèle offre une surcharge réduite par rapport au modèle Standard.
Le modèle d'optimisation facilite la sélection des événements pour l'analyse de l'Assistant d'optimisation du moteur de base de données. Il capture les événements et les colonnes nécessaires à l'analyse de la charge de travail et aux recommandations d'index. Utilisez ce modèle lors de la préparation des traces pour l'optimisation automatisée des performances.
Le modèle TSQL_Replay inclut tous les événements et colonnes nécessaires à la relecture des traces. Il capture des détails d'exécution complets, vous permettant de reproduire les charges de travail capturées dans des environnements de test. Ce modèle génère des fichiers de trace plus volumineux en raison de la collecte exhaustive des données.
4.5.2 Création de modèles personnalisés
Créez des modèles personnalisés en suivant ces étapes :
- Cliquez à nouveau sur Fichier -> Gabarits -> Nouveau modèle…
- Entrez un nom descriptif dans le champ Nom du nouveau modèle champ.
- En option, cochez Baser un nouveau modèle sur un modèle existant et sélectionnez un modèle existant si vous ne souhaitez pas partir de zéro :
- Cliquez sur Sélection d'événement onglet, personnalisez le modèle de trace avec vos événements, colonnes et filtres souhaités, comme vous le souhaitez faire avec une trace normale.
- Cliquez à nouveau sur Enregistrer pour enregistrer le modèle.
Exporter des modèles pour les partager avec les membres de l'équipe ou à des fins de sauvegarde :
- Cliquez à nouveau sur Fichier -> Gabarits -> Modèle d'exportation.
- Sélectionnez le modèle que vous souhaitez exporter.
- Accédez à l'emplacement de sauvegarde souhaité.
- Saisissez un nom de fichier et cliquez sur Enregistrer.
- Partagez le fichier *.tdf (SQL Server fichier modèle de profileur) avec d'autres SQL Server Utilisateurs de Profiler.
4.6 Enregistrement de la sortie de traçage
Par défaut, SQL Server Profiler affichera les événements dans la fenêtre de trace, mais ne les enregistrera pas. Vous pouvez choisir d'enregistrer les données de trace dans un fichier ou une table. Propriétés de trace boîte de dialogue lors de la création d'une nouvelle trace.
4.6.1 Enregistrer dans un fichier
- Dans l' Propriétés de trace dialogue, vérifier Enregistrer dans le fichier.
- Cliquez sur l’icône du dossier pour ouvrir le navigateur de fichiers.
- Accédez à l'emplacement de sauvegarde souhaité.
- Saisissez un nom de fichier avec l'extension .trc.
- Cliquez à nouveau sur Enregistrer.
- complet » Définir la taille maximale des fichiers limiter la taille des fichiers individuels.
- Permettre Activer le transfert de fichiers créer plusieurs fichiers.
- Activer en option Les processus serveur tracent les données pour les traces côté serveur.
La gestion de la taille des fichiers permet d'éviter la saturation de l'espace disque. Définissez une taille maximale raisonnable, par exemple 500 Mo ou 1 Go, en fonction de l'espace disque disponible et de la durée prévue des traces. La rotation automatique des fichiers crée de nouveaux fichiers lorsque la limite de taille est atteinte, en ajoutant un nombre au nom du fichier.
4.6.2 Enregistrer dans le tableau
- Dans l' Propriétés de trace dialogue, vérifier Enregistrer dans le tableau.
- Le Tableau de destination de dialogue apparaît.
- Sélectionnez le serveur dans la liste Server menu déroulant.
- Choisissez la base de données parmi les Base de données menu déroulant.
- Sélectionnez une table existante ou saisissez un nouveau nom de table dans le champ prévu à cet effet. lampe de table champ.
- Cliquez à nouveau sur OK pour confirmer.
- Paramètre optionnel Définir le nombre maximal de lignes pour limiter la taille de la table.
Des considérations de performance s'appliquent lors de l'enregistrement dans des tables. Le stockage dans des tables engendre une surcharge supplémentaire par rapport au stockage dans des fichiers, car SQL Server Les données de trace doivent être écrites via le moteur de stockage. Utilisez le stockage table lorsque vous devez interroger immédiatement les données de trace avec T-SQL.
La conservation des données est essentielle pour les traces basées sur des tables. Définissez un nombre maximal de lignes pour éviter que les tables ne deviennent trop volumineuses. Archivez ou supprimez régulièrement les anciennes données de trace pour préserver les performances. Pensez à partitionner les grandes tables de trace pour une meilleure gestion.
5. Exécution et gestion SQL Server Traces
5.1 StarTraçage, pause et arrêt
Gérez l'exécution des traces à l'aide des boutons de la barre d'outils :
- Le vert Commencer Ce bouton permet de lancer la capture des événements conformément à votre configuration.
- Cliquez à nouveau sur Pause au temporarsuspendre automatiquement la collecte de données sans perdre la connexion.
- Cliquez à nouveau sur Arrêter pour terminer la trace et fermer la connexion.
Via les éléments du menu :
En cliquant avec le bouton droit sur n’importe quelle entrée dans la fenêtre de trace :
La gestion du cycle de vie des traces a un impact sur les ressources serveur. Les traces actives consomment de la mémoire et de la puissance de traitement proportionnellement au volume d'événements capturés. Il est conseillé de suspendre les traces pendant les périodes où la surveillance n'est pas nécessaire afin de réduire la charge. Pour libérer des ressources, il est recommandé d'arrêter complètement les traces une fois l'analyse terminée.
Les traces côté client nécessitent une connexion Profiler active. Fermer la SQL Server La fenêtre du profileur interrompt immédiatement l'enregistrement des traces côté client. Réduisez-la au lieu de la fermer pour que les traces continuent de s'exécuter pendant que vous travaillez dans d'autres applications.
5.2 Surveillance des traces en temps réel
Surveillez les événements capturés en temps réel dans la fenêtre de suivi principale. Chaque ligne représente un événement, les colonnes affichant ses propriétés. La grille se met à jour en continu pendant les traces actives, affichant ainsi les événements en temps réel.ost Les événements récents apparaissent par défaut en bas de page.
Identifiez les tendances et les problèmes en observant la fréquence et les caractéristiques des événements. Les événements de longue durée indiquent des problèmes de performance. Les erreurs fréquentes suggèrent des problèmes d'application. Une activité de connexion inhabituelle peut signaler des problèmes de sécurité. La surveillance en temps réel permet de réagir immédiatement aux problèmes émergents.
Parcourez les événements enregistrés pour examiner des occurrences spécifiques. Cliquez sur une ligne pour sélectionner un événement et afficher tous ses détails. Double-cliquez sur un événement pour ouvrir une boîte de dialogue détaillée présentant toutes les valeurs des colonnes. Utilisez le verrouillage du défilement pour empêcher le défilement automatique lors de la consultation de l'historique des événements.
5.3 Gestion de plusieurs traces simultanées
L'exécution simultanée de plusieurs traces offre une grande flexibilité pour les scénarios de surveillance complexes. Créez des traces distinctes pour différents aspects de l'activité de la base de données, par exemple une trace pour la surveillance des performances et une autre pour l'audit de sécurité. Chaque trace s'exécute indépendamment avec sa propre configuration.
L'allocation des ressources devient critique avec plusieurs traces. Chaque trace active consomme de la mémoire, du processeur et potentiellement des E/S disque. Limitez le nombre de traces simultanées et assurez-vous que chacune utilise les filtres appropriés pour minimiser la surcharge. Surveillez les performances du serveur pendant l'exécution de plusieurs traces.
Coordonnez le calendrier des traces pour éviter le chevauchement des traces gourmandes en ressources. Si possible, exécutez les traces nécessitant de nombreuses ressources pendant les périodes de faible activité. Planifiez les différentes traces à des moments différents plutôt que de tout exécuter simultanément.
5.4 Traces côté client vs. traces côté serveur
Par défaut, une nouvelle trace créée est une trace côté client, ce qui nécessite une connexion active depuis SQL Server Profiler se connecte au serveur de base de données. Le traçage s'arrête immédiatement si la connexion est interrompue.ost ou Profiler est fermé.
Vous pouvez également créer une trace côté serveur, qui s'exécute entièrement sur le serveur. SQL Server instance sans nécessiter de connexion Profiler active. Le traçage côté serveur continue de s'exécuter même après la fermeture SQL Server Profiler, écriture des données à l'emplacement de fichier spécifié.
Pour créer une trace côté serveur :
- Cliquez sur Fichier -> Nouvelle trace…
- Dans l' Propriétés de trace dialogue, vérifier Enregistrer dans le fichier
- Définissez l'emplacement du fichier et les autres paramètres.
- Permettre Les processus serveur tracent les données créer une trace côté serveur.
Les conséquences sur les performances varient considérablement selon le type de trace. Les traces côté client doivent transmettre les données via le réseau à l'interface du profileur, ce qui augmente la latence et la consommation de bande passante. Les traces côté serveur, quant à elles, engendrent moins de surcharge, car les données sont écrites directement sur le disque du serveur.
Utilisez les traces côté client pour le dépannage ad hoc et le diagnostic rapideostPour les sessions de contrôle et les situations où un retour visuel immédiat est précieux, privilégiez les traces côté serveur pour la surveillance de la production, les captures de longue durée et les scénarios nécessitant un fonctionnement sans surveillance.
6. Analyse SQL Server Données du profileur
6.1 Ouverture et consultation des traces enregistrées
Chargez les fichiers de trace enregistrés en suivant ces étapes :
- Lancement SQL Server Profileur.
- Cliquez à nouveau sur Fichier -> Ouvrez -> Fichier de trace.
- Accédez à l’emplacement du fichier de trace.
- Sélectionnez le fichier .trc et cliquez sur Ouvrez.
- Les données de traçage se chargent dans la fenêtre principale.
Charger les tables de suivi en suivant cette procédure :
- Cliquez à nouveau sur Fichier -> Ouvrez -> Tableau de suivi.
- Se connecter au serveur hostla table de trace.
- Sélectionnez la base de données à partir de Base de données menu déroulant.
- Choisissez la table parmi les lampe de table menu déroulant.
- Cliquez à nouveau sur OK pour charger les données.
6.2 Filtrage et recherche des données de traçabilité
6.2.1 Post-Filtrage de capture
Appliquez des filtres aux données de trace chargées en suivant ces étapes :
- Cliquez à nouveau sur Modifier -> Trouvez ou appuyez sur Ctrl + F.
- Saisissez le texte de recherche dans le champ Trouvez ce que champ.
- Sélectionnez la colonne dans laquelle effectuer la recherche. Regarder dans menu déroulant.
- Cliquez à nouveau sur Trouver Suivant pour localiser les événements correspondants.
Le filtrage par colonne affine les données affichées sans enregistrer deux fois les mêmes événements. Faites un clic droit sur l'en-tête d'une colonne et sélectionnez « Options de filtrage » dans le menu contextuel. Saisissez les critères de filtrage pour n'afficher que les lignes correspondantes. Cette méthode accélère l'analyse en masquant les événements non pertinents.
6.2.2 Recherche d'événements spécifiques
La fonctionnalité de recherche permet de localiser des événements spécifiques dans des fichiers de trace volumineux. Utilisez la boîte de dialogue Rechercher pour effectuer une recherche par contenu textuel, type d'événement ou valeur de colonne. Les expressions régulières permettent des modèles de recherche complexes si nécessaire.
Ajoutez des signets aux événements importants pour une consultation rapide lors de l'analyse. Faites un clic droit sur les événements intéressants et sélectionnez les options de signets pour les marquer. Naviguez entre les signets à l'aide de raccourcis clavier ou de commandes de menu, facilitant ainsi la comparaison des événements connexes.
6.3 Regroupement et agrégation des événements
Regroupez les événements par valeurs de colonne pour identifier les tendances et résumer l'activité. Cliquez avec le bouton droit sur l'en-tête d'une colonne et sélectionnez Grouper par cette colonne Pour organiser les événements. Les vues groupées regroupent les événements similaires, ce qui facilite la visualisation des tendances générales.
Les vues agrégées fournissent des résumés statistiques des données de traçage. Regroupez par TextData pour voir le nombre d'exécutions de chaque requête. Regroupez par LoginName pour afficher des résumés d'activité par utilisateur. L'agrégation révèle des tendances qui ne sont pas immédiatement évidentes dans les listes d'événements détaillées.
Développez et réduisez les groupes pour explorer des catégories spécifiques. Cliquez sur les icônes plus et moins à côté des en-têtes de groupe pour afficher ou masquer les événements groupés.rarLa vue chical facilite l'analyse descendante, staralterner entre des schémas généraux et une analyse approfondie des détails.
6.4 Extraction des requêtes SQL à partir des traces
Extraire les requêtes des données de trace en suivant ces étapes :
- Repérez la requête qui vous intéresse dans la grille de traces.
- Cliquez sur la ligne pour sélectionner l'événement.
- Consultez le texte complet de la requête dans le panneau inférieur.
- Presse Ctrl + A sélectionner tout le texte de la requête.
- Presse Ctrl + C copier le texte de la requête.
- Collez la requête dans Management Studio pour une analyse plus approfondie.
Identifiez les requêtes problématiques en les triant par performance. Cliquez sur l'en-tête de la colonne Durée pour trier par temps d'exécution. Les requêtes les plus lentes apparaissent en haut ou en bas selon le sens du tri. De même, triez par utilisation du processeur, lectures ou écritures pour identifier les opérations gourmandes en ressources.
Exportez les requêtes à des fins de test en les copiant de la trace vers les fenêtres de requêtes. Modifiez les requêtes extraites pour tester les stratégies d'optimisation. Comparez les plans d'exécution et les indicateurs de performance entre les versions originale et optimisée.
6.5 Corrélation des événements et compréhension du flux d'exécution
Les relations entre événements parents et enfants montrent l'exécution hierarchies. SQL:BatchStarÉvénements ting parent SQL:StmtStarLes événements de déclenchement, qui à leur tour déclenchent l'exécution de procédures parentes, sont liés à ces événements. Comprendre ces relations permet de retracer l'intégralité du parcours d'exécution de votre code.
Le suivi des transactions permet de relier les événements associés dans le temps. Utilisez la colonne SPID pour regrouper les événements par session. Au sein d'une session, les événements se succèdent par ordre chronologique, reflétant la séquence des opérations. Cette vue révèle comment les différentes opérations interagissent au sein des transactions.
Corrélez les événements en examinant les valeurs des colonnes partagées. Les événements avec le même SPID se sont produits lors de la même session. Les événements avec le même ApplicationName provenaient de la même application. Utilisez ces corrélations pour comprendre des scénarios d'exécution complexes.
7. commun SQL Server Cas d'utilisation du profileur
7.1 Dépannage des performances
7.1.1 Identification des requêtes lentes
Capturez les requêtes lentes à l'aide de la configuration suivante :
- Créez une nouvelle trace en utilisant TSQLName modèle.
- Dans l' Sélection d'événements onglet, vérifier SQL : Lot terminé et RPC : Terminé sont sélectionnés.
- Cliquez à nouveau sur Filtres de colonnes.
- Choisir Durée à partir de la liste des colonnes.
- Saisissez 1000000 dans le champ Meilleur que ou égal champ destiné à capturer les requêtes prenant plus d'une seconde.
- Cliquez à nouveau sur OK et starà la trace.
- Exécutez la trace pendant les périodes d’utilisation de pointe.
- Arrêtez le traçage et triez par durée pour identifier les requêtes les plus lentes.
L'analyse basée sur la durée révèle les tendances d'exécution. Triez les événements enregistrés par la colonne Durée pour afficher en premier les opérations les plus longues. Examinez la colonne TextData de ces événements pour identifier les requêtes responsables des retards.
Les requêtes gourmandes en ressources processeur et en E/S nécessitent des approches d'optimisation différentes. Triez par la colonne « CPU » pour identifier les requêtes limitées par le processeur qui requièrent des améliorations algorithmiques. Triez par les colonnes « Lectures » ou « Écritures » pour identifier les requêtes limitées par les E/S qui bénéficient d'une indexation ou d'une réécriture.
7.1.2 Détection des blocages et des interblocages
Configurez la détection de blocage en suivant ces étapes :
- Créer une nouvelle trace.
- Dans l' Sélection d'événements onglet, développez Verrouillage.
- Choisir Verrouillage : Impasse et Verrou : Chaîne de verrouillage.
- Afficher Erreurs et avertissements.
- Choisir Rapport de processus bloqué.
- Inclure les colonnes : SPID, Données textuelles, Nom de la base de données, Nom de connexion.
- Start le traçage et la surveillance des événements de verrouillage.
La surveillance des événements de verrouillage révèle les problèmes de concurrence qui affectent les performances de l'application. Les événements de verrouillage/interblocage indiquent quand SQL Server Détection et résolution des situations d'interblocage. Les événements de la chaîne de verrouillage/interblocage indiquent les processus impliqués dans les interblocages.
Les graphiques de blocage fournissent des représentations visuelles des scénarios de blocage. Lorsqu'un blocage se produit, la colonne TextData contient le code XML décrivant le blocage. Copiez ce code XML et ouvrez-le dans SQL Server Management Studio pour afficher le diagramme de blocage graphique montrant quels processus se sont bloqués les uns les autres.
7.1.3 Recherche des index manquants
Capturez la charge de travail pour l'analyse d'index en suivant ces étapes :
- Créez une nouvelle trace en utilisant Tuning modèle.
- Configurez la trace pour qu'elle soit enregistrée dans un fichier.
- Exécutez la trace pendant des périodes de charge de travail représentatives.
- Collectez au moins plusieurs heures d'activité.
- Arrêtez la trace et enregistrez le fichier.
- Lancer l'assistant de réglage du moteur de base de données.
- Sélectionnez le fichier de trace comme source de charge de travail.
- Lancez l'analyse pour recevoir des recommandations d'indices.
L'intégration avec l'Assistant d'optimisation du moteur de base de données automatise la recommandation d'index. Cet assistant analyse la charge de travail enregistrée et suggère des index susceptibles d'améliorer les performances. Examinez attentivement les recommandations avant leur mise en œuvre, en tenant compte de la surcharge de stockage et des coûts de maintenance.osts.
7.2 Dépannage des applications
7.2.1 Débogage des erreurs d'application
Suivez les erreurs d'application à l'aide de cette configuration :
- Créer une nouvelle trace.
- Afficher Erreurs et avertissements dans l'onglet Sélection des événements.
- Choisir Exception, Message d'erreur utilisateur, ainsi Attention.
- Inclure les colonnes : Erreur, Données textuelles, Nom de l'application, SPID.
- Filtrer par Nom de l'application pour vous concentrer sur votre candidature.
- Start la trace et reproduire le scénario d'erreur.
- Examiner les événements d'erreur capturés pour le diagnosticostInformations sur le ic.
Le suivi des erreurs révèle des détails d'exception souvent cachés aux applications. La colonne Erreur contient SQL Server Numéros d'erreur. La colonne TextData affiche les messages d'erreur et la requête à l'origine de l'erreur. La colonne Severity indique le niveau de gravité de l'erreur.
La surveillance des exceptions permet de détecter les problèmes d'exécution, notamment les violations de contraintes, les erreurs d'autorisation et les délais d'attente. Il est important de corréler les événements d'erreur avec les événements de requête précédents afin de comprendre ce qui a déclenché les exceptions.
7.2.2 Suivi des communications entre l'application et la base de données
Surveillez l'activité de l'application en suivant ces étapes :
- Créez une nouvelle trace en utilisant Standard modèle.
- Cliquez à nouveau sur Filtres de colonnes.
- Choisir Nom de l'application et saisissez le nom de votre application dans le J'aime champ.
- Filtrer éventuellement par HostNom pour isoler des serveurs spécifiques.
- Start la trace pendant les opérations d'application.
- Consultez les événements enregistrés pour visualiser toutes les interactions avec la base de données.
Le filtrage par nom d'application isole les requêtes provenant d'applications spécifiques. SQL Server Définit le nom de l'application à partir des chaînes de connexion, facilitant ainsi le suivi des applications individuelles dans les environnements multi-applications. Vérifiez que votre chaîne de connexion inclut le paramètre Nom de l'application pour un filtrage efficace.
Le suivi des connexions permet de visualiser le cycle de vie des sessions, notamment la connexion, l'exécution des requêtes et la déconnexion. Surveillez le taux de création des connexions pour identifier les problèmes de mise en pool des connexions. Un taux de renouvellement excessif des connexions indique des problèmes potentiels de configuration de l'application.
7.2.3 Validation du comportement de l'application
Vérifiez le comportement attendu de l'application à l'aide de l'analyse des traces. Capturez toutes les opérations de base de données lors d'une transaction métier et vérifiez que les requêtes s'exécutent correctement et dans le bon ordre. Comparez les requêtes capturées au comportement attendu afin d'identifier les anomalies.
La validation des paramètres garantit que les applications transmettent les valeurs correctes aux procédures stockées et aux requêtes paramétrées. Examinez le texte de la requête capturée pour vérifier que les valeurs des paramètres correspondent aux attentes. Des paramètres incorrects entraînent souvent des erreurs logiques qui se traduisent par des résultats métier erronés.
7.3 Audit de sécurité
7.3.1 Surveillance des tentatives de connexion
Configurez la surveillance des connexions en suivant ces étapes :
- Créer une nouvelle trace.
- Afficher Audit de sécurité dans l'onglet Sélection des événements.
- Choisir Connexion d'audit, Déconnexion de l'audit, ainsi Échec de la connexion à l'audit.
- Inclure les colonnes : Nom de connexion, HostNom, Nom de l'application, StartHeure.
- Start la trace pour surveiller l'activité d'authentification.
- Examinez les événements de connexion infructueuse afin de déceler d'éventuels problèmes de sécurité.
Les tentatives de connexion réussies et échouées permettent un suivi complet de l'authentification. Les événements d'audit de connexion enregistrent les tentatives d'authentification réussies, en précisant l'identité de l'utilisateur et la source. Les événements d'audit d'échec de connexion indiquent les tentatives de connexion infructueuses pouvant révéler des attaques ou des problèmes de configuration.
Le suivi de l'authentification révèle des schémas d'accès à la base de données. Surveillez la fréquence des connexions pour détecter toute activité inhabituelle. Plusieurs tentatives de connexion infructueuses suivies d'une connexion réussie peuvent indiquer des identifiants compromis. Les échecs de connexion provenant de sources inattendues nécessitent une enquête.
7.3.2 Suivi de l'accès et des modifications des données
Surveillez l'accès aux données à l'aide de cette configuration :
- Créer une nouvelle trace.
- Afficher Audit de sécurité.
- Choisir Accès aux objets de la base de données d'audit.
- Inclure les colonnes : ObjectName, Nom de connexion, Données textuelles, Nom de la base de données.
- Filtrer par ObjectName pour surveiller des tables sensibles spécifiques.
- Start la trace pour capturer les tentatives d'accès.
Le suivi des opérations SELECT, INSERT, UPDATE et DELETE permet un audit complet des modifications de données. Capturez les événements SQL:BatchCompleted avec des filtres appropriés pour surveiller toutes les opérations d'accès aux données. Filtrez par ObjectName ou TextData pour vous concentrer sur les tables sensibles.
L'accès aux données sensibles exige une surveillance rigoureuse afin de garantir la conformité aux politiques de sécurité. Créez des traces spécifiques pour les tables contenant des informations personnelles, des données financières ou d'autres informations confidentielles. Analysez régulièrement les schémas d'accès pour identifier les accès inappropriés aux données.
Détectez les activités suspectes en analysant les modèles de requêtes dans les traces capturées. Recherchez les requêtes inhabituelles qui ne correspondent pas au comportement normal de l'application. Les instructions SELECT sans clause WHERE récupérant des tables entières peuvent indiquer des tentatives d'exfiltration de données.
Les tentatives d'élévation des privilèges se manifestent par des erreurs d'autorisation ou des tentatives d'exécution de commandes administratives. Surveillez les requêtes tentant d'accéder aux tables système, de modifier la configuration du serveur ou de créer des comptes privilégiés. Filtrez les événements d'erreur et examinez la colonne TextData pour détecter toute activité suspecte.
7.4 Planification des capacités et analyse de la charge de travail
Établissez des références en capturant une charge de travail représentative pendant les opérations normales. Effectuez des suivis pendant les heures ouvrables habituelles pour comprendre les schémas d'activité standard. Enregistrez ces suivis comme références de performance pour des comparaisons ultérieures.
L'identification des pics d'utilisation révèle les périodes de charge maximale de votre système. Enregistrez les données sur différentes périodes, notamment les heures ouvrables, les fenêtres de traitement par lots et l'activité hors des heures ouvrables. Analysez le nombre d'événements et la consommation des ressources pour identifier les pics d'activité.
L'analyse de la charge de travail permet de dégager les tendances d'utilisation des ressources. Regroupez les événements par intervalles de temps pour visualiser la répartition de l'activité tout au long de la journée. Calculez les indicateurs agrégés d'utilisation du processeur, des E/S disque et de durée pour quantifier la consommation des ressources. Utilisez ces données pour planifier les mises à niveau de capacité ou identifier les opportunités d'optimisation.
8. Avancée SQL Server Techniques de profileur
8.1 Création de traces côté serveur avec T-SQL
8.1.1 Utilisation de sp_trace_create et des procédures associées
Créez des traces côté serveur par programmation à l'aide de procédures stockées T-SQL. Cette approche permet la création et la gestion automatisées des traces sans nécessiter SQL Server Interface graphique du profileur.
Définissez une trace côté serveur à l’aide de cet exemple de code :
- Déclarez des variables pour l'ID de trace et le chemin du fichier.
- Appelez sp_trace_create pour créer une nouvelle trace.
- Utilisez sp_trace_setevent pour ajouter des événements et des colonnes.
- Utilisez éventuellement sp_trace_setfilter pour configurer les filtres.
- Appelez sp_trace_setstatus à starà la trace.
La procédure sp_trace_create initialise une nouvelle définition de trace. Spécifiez le chemin du fichier de sortie, sa taille maximale et les options de rotation. La procédure renvoie un ID de trace utilisé lors des appels de procédure suivants pour configurer la trace.
Ajoutez des événements à l'aide de la procédure sp_trace_setevent. Spécifiez l'ID de trace, l'ID d'événement et l'ID de colonne pour chaque combinaison événement-colonne à capturer. Appelez cette procédure plusieurs fois pour créer des configurations de trace complètes.
Configurez les filtres avec la procédure sp_trace_setfilter. Spécifiez l'ID de trace, l'ID de colonne, l'opérateur logique, l'opérateur de comparaison et la valeur du filtre. La combinaison de plusieurs appels de filtre crée des critères de filtrage complexes.
StarActivez le traçage en appelant sp_trace_setstatus avec la valeur de statut 1. Arrêtez les traces en appelant la même procédure avec la valeur de statut 0. Supprimez les définitions de trace en appelant avec la valeur de statut 2.
8.1.2 Avantages des traces côté serveur
La réduction de la charge client rend les traces côté serveur idéales pour la surveillance en production. Le serveur de base de données gère toutes les opérations de trace sans consommer les ressources de la machine cliente. La bande passante réseau n'est pas utilisée pour transmettre les événements à une application cliente.
L'exécution automatisée permet la collecte de traces sans surveillance. Les traces côté serveur continuent de s'exécuter après leur création, même en l'absence de connexion client. Planifiez la création des traces via SQL Server Tâches d'agent pour la surveillance automatisée.
Le traitement côté serveur réduit l'impact sur les performances. Les événements sont écrits directement sur le disque sans sérialisation ni transmission réseau supplémentaires. La gestion des tampons optimise les E/S disque pour de meilleures performances globales.
8.2 Fonctionnalité de relecture des traces
8.2.1 Capture de traces pour la relecture
Créez des traces prêtes à être rejouées en suivant ces étapes :
- Créez une nouvelle trace en utilisant TSQL_Replay modèle.
- Vérifiez que tous les événements et colonnes requis sont sélectionnés.
- Configurez la trace pour qu'elle soit enregistrée dans un fichier.
- Exécutez la trace pendant la période de charge de travail que vous souhaitez capturer.
- Arrêtez la trace et enregistrez le fichier.
Les événements et colonnes obligatoires garantissent une relecture complète de la trace. Le modèle TSQL_Replay inclut tous les types d'événements et colonnes de données nécessaires. L'absence d'éléments obligatoires empêche une relecture réussie ; utilisez donc toujours ce modèle lors de la capture de traces à des fins de relecture.
8.2.2 Relecture des traces
Rejouez les charges de travail capturées en suivant ces étapes :
- In SQL Server Profiler, cliquez Fichier -> Ouvrez -> Fichier de trace.
- Sélectionnez le fichier de trace prêt pour la relecture.
- Cliquez à nouveau sur Replay -> Commencer.
- Connectez-vous à tarObtenir le serveur dans la boîte de dialogue de relecture.
- Configurez les options de relecture, y compris l'ordre et le timing de relecture.
- Cliquez à nouveau sur OK pour lancer la rediffusion.
- Suivez la progression de la relecture dans la fenêtre d'état.
Les options de configuration de relecture contrôlent le mode de relecture SQL Server Profiler reproduit la charge de travail capturée. Les événements sont rejoués dans l'ordre de leur capture afin de préserver les relations temporelles. Vous pouvez configurer le mode de relecture : conserver le timing d'origine ou rejouer les événements le plus rapidement possible.
8.2.3 Cas d'utilisation de la relecture de traces
Les tests de charge bénéficient de la relecture des traces en reproduisant des charges de travail réalistes. Capturez les traces de la charge de travail en production et rejouez-les sur les systèmes de test pour valider les performances dans des conditions d'utilisation réelles. Ajustez les paramètres de concurrence pour simuler différents niveaux de charge.
La validation de la migration d'environnement garantit la capacité des nouveaux systèmes à gérer les charges de travail existantes. Capturez les traces des systèmes de production actuels et rejouez-les sur du nouveau matériel ou une mise à jour. SQL Server versions. Comparez les indicateurs de performance pour vérifier que les migrations n'entraîneront pas de dégradation des performances.
Les scénarios de test incluent des tests de régression après modification du code, la validation des modifications de l'optimiseur sur l'ensemble du système SQL Server versions et configurations matérielles de test de contrainte. Replay fournit des charges de travail cohérentes et reproductibles pour des tests fiables.
8.3 Intégration de SQL Profiler avec Database Engine Tuning Advisor
Créez des fichiers de charge de travail pour l'Assistant de réglage du moteur de base de données en capturant les traces avec les événements appropriés. Utilisez le modèle de réglage pour vous assurer que toutes les informations nécessaires à l'analyse sont capturées.
Lancez l'Assistant d'optimisation du moteur de base de données et sélectionnez votre fichier de trace comme source de charge de travail. L'assistant analyse les requêtes capturées et recommande des index, des vues indexées ou des stratégies de partitionnement susceptibles d'améliorer les performances.
Le flux de travail d'optimisation des performances intègre la capture de traces à l'analyse de réglage. Capturez des charges de travail représentatives en fonctionnement normal, analysez-les avec Tuning Advisor, examinez les recommandations, testez les modifications suggérées en développement et enfin, implémentez les modifications approuvées en production.
8.4 Automatisation de la collecte de traces
Planifiez les traces à l'aide de SQL Server Des tâches d'agent permettent de collecter automatiquement les données. Créez des scripts T-SQL définissant les traces côté serveur à l'aide des procédures sp_trace. Planifiez l'exécution de ces scripts à des heures ou intervalles spécifiques.
L'automatisation PowerShell permet des scénarios sophistiqués de gestion des traces. Écrivez des scripts PowerShell qui créent des traces, surveillent leur état et traitent les données collectées. Planifiez des scripts PowerShell via le Planificateur de tâches ou SQL Server Agent.
SQL Server Les tâches d'agent garantissent une exécution planifiée et fiable. Créez des tâches quitarActivez le suivi au début des périodes de surveillance et arrêtez-le une fois la collecte de données terminée. Configurez les notifications de tâches pour alerter les administrateurs en cas d'échec.
8.5 Analyse programmatique des traces
Lisez les fichiers de trace avec T-SQL à l'aide de la fonction `fn_trace_gettable`. Cette fonction table analyse les fichiers de trace et renvoie les données d'événements sous forme de résultat. Interrogez ensuite ces données avec T-SQL standard pour effectuer des analyses personnalisées.
Les scripts d'analyse personnalisés permettent le traitement automatisé des traces. Créez des requêtes pour calculer des statistiques agrégées, identifier des tendances ou signaler des anomalies. Programmez l'exécution automatique de ces scripts une fois la collecte des traces terminée.
Générez des rapports en interrogeant les données de traçage stockées dans les tables. Créez des vues qui regroupent les événements par période, utilisateur ou application. Développez des solutions de reporting qui fournissent des informations régulières sur l'activité et les performances de la base de données.
9. SQL Server Meilleures pratiques du profileur
9.1 Meilleures pratiques en matière de performances
9.1.1 Minimisation de la surcharge liée au traçage
Sélectionnez uniquement les événements nécessaires afin de réduire la charge de traçage. Chaque type d'événement supplémentaire augmente la quantité de données que le moteur de traçage doit traiter. Examinez vos objectifs de surveillance et n'incluez que les événements directement pertinents pour les atteindre.
Utilisez des filtres efficaces pour éviter de capturer des données non pertinentes. Filtrez par nom de base de données pour exclure les bases de données système. Filtrez par durée pour capturer uniquement les requêtes lentes. Filtrez par nom d'application pour cibler des applications spécifiques. Un filtrage approprié réduit considérablement la charge de traçage.
Les considérations côté serveur et côté client ont un impact sur les performances. Les traces côté serveur écrivent les données directement sur le disque avec une charge minimale. Les traces côté client transmettent les événements via le réseau à l'interface du profileur, ce qui augmente la latence et la consommation de bande passante. Utilisez les traces côté serveur pour la surveillance en production.
9.1.2 Optimisation du stockage des traces
La gestion de la taille des fichiers prévient l'épuisement de l'espace disque. Définissez des limites de taille maximale adaptées à l'espace de stockage disponible. Activez la substitution de fichiers pour créer plusieurs fichiers au lieu d'agrandir un seul fichier indéfiniment. Surveillez l'espace disque pendant l'exécution des traces.
Le stockage sous forme de tables ou de fichiers présente des compromis de performance différents. Le stockage sous forme de fichiers offre de meilleures performances lors de l'exécution des traces car il contourne le moteur de stockage. Le stockage sous forme de tables permet d'effectuer des requêtes T-SQL sur les données de trace, mais engendre une surcharge d'écriture. Choisissez le type de stockage en fonction de vos besoins d'analyse.
9.2 bonnes pratiques de sécurité
La gestion des permissions détermine qui peut créer et exécuter des traces. N'accordez l'autorisation ALTER TRACE qu'aux utilisateurs de confiance qui en ont besoin. Les membres du rôle sysadmin disposent d'un accès illimité aux traces. Examinez et auditez régulièrement les permissions de trace.
La protection des données sensibles exige une configuration rigoureuse des traces. Évitez de capturer l'intégralité du texte des requêtes lors du traitement de données sensibles. Envisagez de filtrer ou de chiffrer les traces contenant des informations confidentielles. Stockez les fichiers de traces dans des emplacements sécurisés avec des contrôles d'accès appropriés.
La sécurité des fichiers de trace empêche tout accès non autorisé aux données capturées. Définissez des autorisations pour restreindre l'accès aux fichiers de trace. Chiffrez les fichiers de trace s'ils contiennent des informations sensibles. Supprimez les fichiers de trace une fois l'analyse terminée pour minimiser les risques d'exposition.
9.3 Considérations relatives à l'environnement de production
9.3.1 Quand utiliser Profiler en production
L'évaluation des risques détermine quand SQL Server Profiler est adapté à une utilisation en production. Il entraîne une surcharge mesurable qui augmente avec la portée de la trace. Évaluez si le diagnostic est effectué.ostLa valeur de l'IC justifie l'impact sur les performances avant l'exécution des traces de production.
Les configurations à impact minimal permettent un traçage de production plus sûr. Utilisez des filtres hautement sélectifs pour capturer uniquement les événements critiques. Définissez des seuils de durée pour ignorer les requêtes à exécution rapide. Limitez la durée des traces à de courtes périodes lors des sessions de dépannage. Configurez des traces côté serveur pour réduire la charge client.
9.3.2 Alternatives pour la surveillance de la production
Les événements étendus réduisent les frais de surveillance de la production. Cette technologie moderne offre de meilleures performances et une plus grande flexibilité que SQL Server Profiler. Migrez les solutions de surveillance vers les événements étendus pour une utilisation en production à long terme.
Query Store capture automatiquement les données de performance des requêtes sans configuration manuelle de traçage. Activez Query Store sur les bases de données de production pour suivre les statistiques d'exécution des requêtes au fil du temps. Query Store fournit most Des capacités de surveillance des performances sans les contraintes liées au traçage.
Les vues de gestion dynamiques offrent une surveillance simplifiée pour des scénarios spécifiques. Les DMV fournissent des informations sur l'état actuel sans capturer l'historique des événements. Interrogez régulièrement les DMV pour surveiller l'état du serveur sans la surcharge d'un suivi continu.
9.4 Bonnes pratiques de gestion des traces
Les conventions de nommage garantissent l'identification et l'organisation des fichiers de trace. Incluez la date, l'heure, le nom du serveur et l'objectif dans les noms de fichiers de trace. Utilisez des modèles de nommage cohérents pour toutes les traces afin de faciliter la gestion et l'analyse.
La documentation consigne la configuration et l'objectif du traçage. Documentez les événements capturés, la raison de la création du traçage et les enseignements tirés de l'analyse. Conservez un journal des traces exécutées sur les systèmes de production à des fins de conformité et de dépannage.
Les politiques de conservation permettent d'éviter l'accumulation excessive de fichiers de traces. Définissez la durée de conservation de ces fichiers en fonction des besoins de l'entreprise et de la capacité de stockage. Automatisez la suppression des anciens fichiers de traces afin de libérer de l'espace disque. Archivez les traces importantes sur un support de stockage à long terme avant leur suppression.
9.5 Erreurs courantes à éviter
Un traçage excessif entraîne une surcharge de performance excessive et génère des volumes de données ingérables. Évitez de capturer tous les événements sans filtres.tarUtilisez des traces étroites et ciblées et élargissez le champ d'application uniquement lorsque cela est nécessaire. Plus de données ne sont pas toujours synonymes d'un dépannage efficace.
Oublier d'arrêter les traces gaspille des ressources et sature l'espace disque. Arrêtez systématiquement les traces une fois la surveillance terminée. Définissez des limites de durée ou de taille maximale pour les fichiers afin d'éviter les traces incontrôlées. Surveillez régulièrement les traces en cours et arrêtez celles qui sont inactives ou inutiles.
Négliger l'optimisation des filtres entraîne de mauvaises performances et une analyse difficile. Consacrez du temps à configurer des filtres efficaces avant de procéder à l'optimisation.tarTracé des données. Tester les filtres dans les environnements de développement pour vérifier qu'ils capturent les données attendues. Examiner et affiner les filtres en fonction des résultats obtenus.
10. Alternatives à SQL Server Profiler en 2025
10.1 Événements étendus : le remplacement moderne
10.1.1 Que sont les événements étendus ?
Les événements étendus représentent SQL ServerL'architecture moderne de gestion des événements. Microsoft a conçu ce système spécifiquement pour répondre à SQL Server Les limitations de Profiler incluent la surcharge de performances et la flexibilité de configuration. Extended Events offre des capacités de surveillance complètes avec une consommation de ressources considérablement réduite.
L'architecture et les avantages distinguent les événements étendus des technologies de traçage plus anciennes. Le moteur d'événements s'intègre profondément dans SQL ServerArchitecture de base de , capturant les événements avec une surcharge minimale. La mise en mémoire tampon asynchrone des événements empêche la surveillance de bloquer les opérations de base de données. Flexible tarLes options d'obtention permettent diverses configurations de sortie.
Les performances supérieures des événements étendus en font la solution idéale pour la surveillance de la production. Les tests comparatifs montrent qu'ils génèrent 50 à 90 % de frais généraux en moins que les solutions équivalentes. SQL Server Traces du profileur. L'architecture s'adapte mieux aux volumes d'événements élevés et prend en charge un plus grand nombre de sessions de surveillance simultanées.
10.1.2 Migration de Profiler vers les événements étendus
La cartographie des événements se traduit SQL Server Équivalents des événements du profileur en événements étendus. Most Les événements du profileur ont des équivalents dans les événements étendus. Microsoft fournit une documentation établissant la correspondance entre les événements communs aux deux systèmes.
La création de sessions dans Extended Events nécessite l'apprentissage d'une nouvelle syntaxe et de nouveaux concepts. Définissez les sessions d'événements à l'aide d'instructions T-SQL CREATE EVENT SESSION ou de l'interface graphique Extended Events dans Management Studio. Les sessions spécifient les événements à capturer, les données à collecter et l'emplacement de stockage des résultats.
10.1.3 Outils et interfaces pour événements étendus
L'interface utilisateur des événements étendus de SSMS permet la gestion graphique des sessions. Accédez aux événements étendus via le dossier Gestion de l'Explorateur d'objets. Créez, modifiez et surveillez les sessions d'événements via l'interface. Visualisez les données capturées sous forme graphique, notamment dans des grilles et des graphiques.
La gestion des sessions T-SQL permet le contrôle programmatique des événements étendus. Définissez les sessions dans le code à l'aide d'instructions CREATE EVENT SESSION. Modifiez les sessions en cours d'exécution avec ALTER EVENT SESSION. Supprimez les sessions avec DROP EVENT SESSION. Cette approche facilite la mise en place de solutions de surveillance automatisées.
10.2 SQL Server Magasin de requêtes
Query Store capture automatiquement les données de performance des requêtes pour les bases de données où cette fonctionnalité est activée. Elle assure le suivi des plans d'exécution, des statistiques d'exécution et des indicateurs de performance au fil du temps, sans configuration manuelle. Query Store conserve l'historique des données, permettant ainsi l'analyse des tendances et la détection des régressions.
La surveillance des performances des requêtes en temps réel via Query Store révèle le comportement actuel du système. Consultez les requêtes récemment exécutées, leurs plans d'exécution et leur consommation de ressources. Identifiez les requêtes dont la durée augmente ou dont les plans d'exécution changent, susceptibles d'indiquer des problèmes.
L'analyse de l'historique des requêtes permet de comparer les performances sur différentes périodes. Query Store conserve les données de performance pendant des durées configurables. Comparez les performances actuelles aux données de référence historiques pour identifier les régressions. Analysez les tendances de performance pour anticiper les besoins futurs en capacité.
Utilisez Query Store pour une surveillance automatique et permanente des performances. Activez Query Store sur les bases de données de production pour suivre en continu le comportement des requêtes. Query Store complète le dépannage basé sur les traces en fournissant un historique des problèmes de performances.
10.3 Vues de gestion dynamique (DMV)
La surveillance légère via les DMV fournit des informations sur l'état actuel sans enregistrer les événements historiques. Les DMV exposent les données internes SQL Server Statistiques et métadonnées via des vues interrogeables. Interrogez les DMV à l'aide d'instructions T-SQL SELECT standard.
Les requêtes DMV courantes pour la surveillance des performances incluent sys.dm_exec_query_stats pour les statistiques de performances des requêtes, sys.dm_exec_requests pour les requêtes en cours d'exécution et sys.dm_os_wait_stats pour les statistiques d'attente. Ces vues fournissent des informations ponctuelles sur l'état et l'activité du serveur.
Les DMV complètent la surveillance basée sur les traces en fournissant des indicateurs en temps réel. Utilisez les DMV pour des vérifications rapides de l'état du système et une analyse de l'état actuel. Combinez les requêtes DMV avec les données de traces pour des approches de dépannage complètes.
10.4 Outils de surveillance tiers
Les alternatives commerciales offrent des capacités de surveillance améliorées au-delà de SQL ServerOutils intégrés. Les produits de fournisseurs tels que SolarWinds, Redgate et Quest offrent des fonctionnalités complètes de surveillance, d'alerte et d'analyse. Ces outils combinent souvent plusieurs sources de données, notamment des traces, des DMV et des compteurs de performance.
La comparaison des fonctionnalités révèle les points forts des différentes approches de surveillance. Les outils tiers offrent des interfaces utilisateur supérieures, des alertes automatisées et un suivi des tendances historiques. SQL ServerLes outils intégrés de n'offrent aucun coût supplémentaireost et une intégration plus poussée. Évaluez les outils en fonction de vos besoins spécifiques et de votre budget.
10.5 Choisir l'outil adapté à vos besoins
Une matrice de décision permet de sélectionner les outils de surveillance appropriés. Pour le dépannage ponctuel, SQL Server Profiler reste accessible et efficace. Pour la surveillance de la production, Extended Events ou Query Store offrent de meilleures performances. Pour une surveillance complète de l'entreprise, les solutions tierces offrent les fonctionnalités nécessaires.ost d’APOB.
Les critères de sélection des outils incluent les performances, la facilité d'utilisation, les exigences de conservation des données et les contraintes budgétaires. Tenez compte de l'expertise de votre équipe lors du choix des outils. Les outils familiers permettent un dépannage plus rapide, même si les alternatives plus récentes offrent de meilleures fonctionnalités.
Combinez plusieurs outils pour des stratégies de surveillance complètes. Utilisez Query Store pour un suivi continu des performances, Extended Events pour l'investigation de problèmes spécifiques et les DMV pour des contrôles d'intégrité en temps réel. Cette approche par couches assure une surveillance robuste sans surcharge excessive.
11. Dépannage SQL Server Problèmes de profileur
11.1 Problèmes de connexion courants
Les échecs d'authentification empêchent SQL Server Profiler de la connexion à tarObtenez les serveurs. Vérifiez que vous utilisez les informations d'identification correctes pour la méthode d'authentification sélectionnée. L'authentification Windows exige que votre compte Windows dispose des autorisations appropriées. SQL Server autorisations SQL Server L'authentification nécessite des informations de connexion SQL valides.
Les problèmes de connectivité réseau se manifestent par des erreurs de dépassement de délai ou des échecs de connexion. Vérifier SQL Server Sa configuration autorise les connexions à distance. Vérifiez que les paramètres du pare-feu autorisent le trafic sur SQL ServerLe port de s. Testez la connectivité de base à l'aide de ping et telnet avant de résoudre les problèmes spécifiques au Profiler.
11.2 Problèmes de performance avec le profileur
Une exécution lente des traces indique une surcharge excessive due à leur configuration. Examinez les événements sélectionnés et éliminez ceux qui ne sont pas nécessaires. Ajoutez des filtres pour réduire le volume d'événements capturés. Envisagez d'utiliser des traces côté serveur pour réduire la charge de traitement côté client.
La forte consommation de ressources affecte à la fois SQL Server et le client Profiler. Surveillez le processeur et la mémoire du serveur pendant l'exécution du traçage. Si les ressources du serveur sont limitées, augmentez la sélectivité du filtre ou réduisez la durée de capture. En cas de problème de ressources côté client, il est nécessaire de fermer les autres applications ou de mettre à niveau le matériel client.
11.3 Problèmes liés aux fichiers de trace et aux tables
Les fichiers de trace corrompus empêchent l'ouverture dans SQL Server Profiler. La corruption résulte généralement d'un arrêt brutal du traçage ou d'erreurs de disque. Essayez d'ouvrir le fichier dans un éditeur de texte pour vérifier qu'il n'est pas complètement corrompu. Il est parfois possible de récupérer des données partielles en les important dans une table à l'aide de la fonction fn_trace_gettable.
Des problèmes d'accès aux tables surviennent lors de la tentative de chargement des traces à partir de SQL Server Vérifiez que vous disposez des droits SELECT sur la table de trace. Assurez-vous que la table n'a pas été supprimée ou renommée. Vérifiez également que vous vous connectez au serveur et à la base de données appropriés contenant la table de trace.
11.4 Événements manquants ou données incomplètes
Une mauvaise configuration des filtres peut empêcher la capture d'événements attendus. Examinez attentivement les critères de filtrage pour vous assurer qu'ils n'excluent pas d'événements souhaités. Testez les filtres en exécutant de courtes traces et en vérifiant que les données capturées correspondent aux attentes. Supprimez les filtres temporairement.raril est important de déterminer s'ils sont à l'origine du problème.
Un dépassement de tampon se produit lorsque SQL Server Impossible d'écrire les données de trace assez rapidement pour suivre la génération d'événements. Ce problème survient généralement avec les traces non filtrées lors d'une activité intense. Les symptômes incluent des événements manquants ou des avertissements « Événements non capturés ». Pour le résoudre, ajoutez des filtres afin de réduire le volume d'événements ou augmentez les performances d'E/S disque de l'emplacement du fichier de trace.
11.5 Plantages et erreurs du profileur
Les messages d'erreur courants incluent « Impossible de créer une trace », indiquant des problèmes d'autorisation ou des ressources limitées. Les messages « La trace a été arrêtée » suggèrent des défaillances de la trace côté serveur, probablement dues à un disque saturé. Les erreurs « Définition de trace invalide » indiquent des problèmes de configuration.
Les stratégies de résolution dépendent de l'erreur spécifique. Les erreurs d'autorisation nécessitent l'octroi de l'autorisation ALTER TRACE à l'utilisateur. Les erreurs de ressources nécessitent la libération d'espace disque ou de mémoire. Les erreurs de configuration nécessitent la vérification et la correction des paramètres de traçage.tart SQL Server Profiler s'il ne répond plus.
12. Pratique SQL Server Scénarios et exemples de profilage
12.1 Scénario 1 : Identification des requêtes les plus lentes dans votre base de données
Cette procédure pas à pas montre comment capturer et analyser les requêtes lentes.
Configurez la trace en suivant ces étapes :
- Lancement SQL Server Profiler et connectez-vous à votre tarobtenir le serveur.
- Cliquez à nouveau sur Fichier -> Nouveau tracé.
- Saisissez « Analyse des requêtes lentes » dans le champ Nom de la trace champ.
- Choisir TSQLName du Utiliser le modèle menu déroulant.
- Cliquez à nouveau sur Sélection d'événements languette.
- Cliquez à nouveau sur Filtres de colonnes.
- Choisir Durée et entrez 1000000 dans Meilleur que ou égal.
- Choisir Nom de la base de données et saisissez le nom de votre base de données dans J'aime.
- Cliquez à nouveau sur OK fermer les filtres.
- Permettre Enregistrer dans le fichier et spécifiez un chemin de fichier.
- Cliquez à nouveau sur Courir à start capture.
Lancez le traçage pendant les heures de pointe, pendant au moins 30 minutes, afin de capturer une charge de travail représentative. Arrêtez le traçage une fois les données collectées suffisantes.
Analysez les résultats en suivant ce processus :
- Cliquez sur Durée En-tête de colonne pour trier par temps d'exécution.
- Identifiez les 10 requêtes les plus longues.
- Pour chaque requête, examinez le Données textuelles colonne.
- Copiez le texte de la requête et collez-le dans Management Studio.
- Utilisez le Afficher le plan d'exécution estimé analyser la requête.
- Recherchez les analyses de table, les index manquants ou les jointures inefficaces.
- Évaluation Processeur, Lit, ainsi Écrit colonnes pour les modèles de consommation des ressources.
12.2 Scénario 2 : Débogage d’un problème de blocage
Cet exemple montre comment détecter et analyser les interblocages.
Configurez la surveillance des interblocages en suivant ces étapes :
- Créez une nouvelle trace nommée « Deadlock Investigation ».
- Cliquez à nouveau sur Sélection d'événements languette.
- Cliquez à nouveau sur Afficher tous les événements.
- Afficher Verrouillage catégorie.
- Choisir Verrouillage : Impasse.
- Choisir Verrou : Chaîne de verrouillage.
- Afficher Erreurs et avertissements catégorie.
- Choisir Rapport de processus bloqué.
- Qu'on Assure Données textuelles La colonne est sélectionnée.
- Cliquez à nouveau sur Courir à starsurveillance t.
Lorsqu'un blocage survient pendant l'exécution du traçage, l'événement Lock:Deadlock apparaît dans la grille de traçage.
Interprétez les informations relatives à l'interblocage en suivant ces étapes :
- Cliquez sur Verrouillage : Impasse ligne d'événement.
- Voir le Données textuelles colonne dans le panneau inférieur.
- Copiez le contenu XML depuis TextData.
- Ouvrez Management Studio et créez une nouvelle fenêtre de requête.
- Collez le XML dans la fenêtre de requête.
- Enregistrez le fichier avec l'extension .xdl.
- Ouvrez le fichier .xdl dans Management Studio pour visualiser le graphique d'interblocage.
- Le graphique illustre les processus impliqués, les ressources bloquées et la victime choisie.
- Examinez les requêtes issues des deux processus pour comprendre le conflit.
Les étapes de résolution consistent généralement à réorganiser les opérations dans le code de l'application pour accéder aux ressources dans un ordre cohérent, à réduire la portée de la transaction ou à mettre en œuvre des indications de verrouillage appropriées.
12.3 Scénario 3 : Suivi de toutes les requêtes d'une application spécifique
Ce scénario illustre la surveillance des requêtes spécifiques à une application.
Configurez le traçage spécifique à l'application en suivant ces étapes :
- Créez une nouvelle trace nommée « Suivi des requêtes d'application ».
- Sélectionnez le Standard modèle.
- Cliquez à nouveau sur Sélection d'événements languette.
- Cliquez à nouveau sur Filtres de colonnes.
- Choisir Nom de l'application.
- Saisissez le nom de votre application dans le champ J'aime champ.
- Si votre application utilise la mise en commun des connexions, vous aurez peut-être besoin d'une correspondance avec caractères génériques.
- Cliquez à nouveau sur OK pour appliquer le filtre.
- Permettre Enregistrer dans le tableau pour faciliter les requêtes.
- Cliquez à nouveau sur Courir à start capture.
L'analyse des modèles de requêtes révèle comment votre application interagit avec SQL Server:
- Après la collecte des données, arrêtez le suivi.
- Ouvrez Management Studio et connectez-vous au serveur avec la table de suivi.
- Interrogez la table de traces pour analyser les tendances.
- Comptez les requêtes par type pour voir le mix d'opérations.
- Identifier most requêtes fréquemment exécutées.
- Recherchez les requêtes qui pourraient être mises en cache ou optimisées.
- Vérifiez la présence de requêtes identiques répétées, ce qui indiquerait une absence de mise en commun des connexions.
12.4 Scénario 4 : Audit de l’accès aux données à des fins de conformité
Cet exemple illustre la création d'une piste d'audit de sécurité.
Configurez l’audit de sécurité en suivant ces étapes :
- Créez une nouvelle trace nommée « Journal d’audit de sécurité ».
- Cliquez à nouveau sur Sélection d'événements languette.
- Cliquez à nouveau sur Afficher tous les événements.
- Afficher Audit de sécurité catégorie.
- Choisir Connexion d'audit, Déconnexion de l'audit, Échec de la connexion à l'audit.
- Choisir Accès aux objets de la base de données d'audit.
- Afficher TSQLName catégorie.
- Choisir SQL : Lot terminé.
- Cliquez à nouveau sur Filtres de colonnes.
- Filtrer par ObjectName pour surveiller des tables sensibles spécifiques.
- Permettre Enregistrer dans le tableau pour une rétention à long terme.
- Activer la trace côté serveur pour un fonctionnement sans surveillance.
- Cliquez à nouveau sur Courir à start audit.
Générez des rapports d'audit en interrogeant la table de trace :
- Créez des requêtes récapitulant les accès par utilisateur et par période.
- Identifier les schémas d'accès inhabituels ou les activités en dehors des heures normales de travail.
- Documentez les tentatives de connexion infructueuses pour examen de sécurité.
- Exporter les données d'audit vers les systèmes de reporting pour la documentation de conformité.
- Archivez les traces d'audit terminées conformément aux politiques de conservation.
12.5 Scénario 5 : Capture d’une charge de travail pour les tests de performance
Ce scénario illustre la capture de la charge de travail à des fins de test.
Créez des traces prêtes à être rejouées en suivant ces étapes :
- Créez une nouvelle trace nommée « Capture de charge de travail ».
- Choisir TSQL_Replay à partir du menu déroulant du modèle.
- Ce modèle inclut tous les événements et colonnes nécessaires à la relecture.
- Cliquez à nouveau sur Sélection d'événements languette.
- Appliquez des filtres si vous souhaitez capturer des segments de charge de travail spécifiques.
- Permettre Enregistrer dans le fichier.
- Spécifiez un chemin d'accès au fichier disposant d'un espace disque suffisant.
- Définissez des limites de taille de fichier appropriées et activez le dépassement.
- Cliquez à nouveau sur Courir à start capture.
Capturez les données lors d'opérations commerciales représentatives. Pour une capture complète de la charge de travail, exécutez le traçage pendant plusieurs heures en couvrant différents modèles d'activité. Arrêtez le traçage une fois les données suffisantes collectées.
L'analyse de la charge de travail révèle des schémas de comportement du système :
- Ouvrez le fichier de trace capturé dans SQL Server Profileur.
- Analyser la répartition des événements par type et par période.
- Calculer les indicateurs agrégés de consommation des ressources.
- Identifier les périodes de pointe et les goulets d'étranglement des ressources.
- Utilisez la trace pour l'analyse de l'outil de réglage du moteur de base de données.
- Rejouez la trace sur des systèmes de test pour valider les modifications.
13. Détection de la corruption de bases de données avec SQL Server Profiler
13.1 Utilisation SQL Server Profiler pour détecter les signes avant-coureurs de corruption
La corruption de la base de données représente l’un des most menaces sérieuses pour l'intégrité des données et la fiabilité du système. SQL Server Profiler n'est pas un outil dédié à la détection de corruption, il peut capturer des signes d'avertissement critiques indiquant des problèmes de corruption potentiels nécessitant une enquête immédiate.
13.2 Événements d'erreur critique indiquant une corruption potentielle
- Erreurs de gravité 24 (823, 824, 825) : Défaillances matérielles et de supports.
- Erreur 605 : Échec des tentatives de récupération de page
- Erreurs 8928 et 8929 : Corruption d’objet
13.3 Comportements suspects dans la base de données et schémas d'alerte
- Délais d'attente de requêtes répétées sur des objets spécifiques
- Violations d'accès et pannes d'application
- Regroupement d'erreurs inhabituel
13.4 Exécuter DBCC CHECKDB en fonction des résultats du profileur
If SQL Server Le profileur détecte des corruptions suspectes ; vous pouvez utiliser DBCC CHECKDB pour effectuer une vérification complète de la base de données. Procédez ensuite à une réparation si des corruptions sont confirmées. Nous avons rédigé un guide complet sur la manière d'effectuer ces tâches.
Si DBCC CHECKDB ne parvient pas à réparer la base de données, les corruptions sont graves. Dans ce cas, vous pouvez recourir à un outil de récupération SQL tiers.
14. FAQ
Q: est SQL Server Profiler est toujours pris en charge dans SQL Server 2022?
Un: oui, SQL Server Profiler est toujours inclus dans SQL Server 2022 et SQL Server Management Studio, bien qu'il soit obsolète depuis SQL Server En 2016, Microsoft a continué à inclure l'outil dans les versions actuelles, mais a recommandé la migration vers les événements étendus pour les nouvelles implémentations de surveillance. L'outil reste fonctionnel et largement utilisé pour le dépannage et l'analyse ad hoc.
Q: Quelle est la différence entre SQL Server Profiler et trace SQL ?
A: SQL Server Profiler est l'outil d'interface utilisateur graphique qui se connecte au moteur SQL Trace exécuté dans SQL ServerSQL Trace est la technologie sous-jacente qui capture les événements. Vous pouvez créer des traces via l'interface de Profiler ou directement via des procédures stockées T-SQL comme sp_trace_create. Profiler offre une configuration plus simple, tandis que les traces T-SQL proposent davantage de possibilités d'automatisation.
Q : Quel est le surcoût de performance ? SQL Server Ajouter un profileur ?
A : L'impact sur les performances varie selon la configuration du traçage. Un traçage bien filtré, ne capturant que des événements spécifiques, peut engendrer une surcharge de 1 à 5 %. Des traçages mal configurés, sans filtres, peuvent engendrer une surcharge de 20 à 50 %, voire plus, en particulier sur les systèmes fortement sollicités. Les traçages côté serveur ont un impact moindre que les traçages côté client. Il est donc recommandé d'utiliser systématiquement des filtres afin de minimiser le volume d'événements et de tester les traçages au préalable dans des environnements hors production.
Q : Puis-je courir ? SQL Server Profiler sur les serveurs de production ?
A: Tu peux courir SQL Server Utilisez Profiler sur les serveurs de production, mais avec précaution. Appliquez des filtres très sélectifs, limitez la durée des traces et privilégiez les traces côté serveur pour minimiser l'impact. Si possible, exécutez les traces de production pendant les périodes de faible activité. Pour une surveillance continue de la production, envisagez plutôt Extended Events ou Query Store, car ils présentent une surcharge moindre.
Q : De quelles autorisations ai-je besoin ? SQL Server Profileur ?
R : Vous devez disposer de l'autorisation ALTER TRACE pour créer et exécuter des traces. Les membres du rôle serveur fixe sysadmin possèdent automatiquement cette autorisation. Pour les autres utilisateurs, accordez-leur explicitement l'autorisation ALTER TRACE. De plus, vous devez disposer des autorisations appropriées pour enregistrer les données de trace dans des fichiers ou des tables, selon votre configuration.
Q : Pourquoi ne puis-je pas voir tous les événements dans ma trace ?
R : Les événements manquants résultent généralement de filtres trop restrictifs ou d'un dépassement de mémoire tampon. Vérifiez la configuration de votre filtre pour vous assurer qu'il n'exclut pas les événements souhaités. Un dépassement de mémoire tampon se produit lorsque SQL Server Impossible d'écrire les événements assez rapidement, généralement avec des traces non filtrées sur les systèmes occupés. Ajoutez des filtres pour réduire le volume d'événements ou augmenter les performances d'E/S disque. Vérifiez les messages d'erreur indiquant que les événements n'ont pas été capturés.
Q : Comment puis-je capturer les informations sur les interblocages avec SQL Server Profileur ?
A : Créez une trace incluant les événements Lock:Deadlock et Lock:Deadlock Chain de la catégorie Verrous. Assurez-vous que la colonne TextData est sélectionnée, car elle contient le XML du graphique d'interblocage. Lorsqu'un interblocage se produit, copiez le XML de la colonne TextData, enregistrez-le avec l'extension .xdl et ouvrez-le dans SQL Server Utilisez Management Studio pour visualiser le diagramme graphique d'interblocage.
Q : Quelle est la différence entre l’enregistrement des traces dans des fichiers et dans des tables ?
A : Les fichiers offrent de meilleures performances lors de l'exécution de la trace car ils contournent le SQL Server Moteur de stockage. Les traces de fichiers enregistrent les données directement sur disque avec une surcharge minimale. Les traces de tables transitent par le moteur de stockage, ce qui engendre une surcharge supplémentaire mais permet d'effectuer des requêtes T-SQL immédiates sur les données de trace. Privilégiez les fichiers pour les scénarios critiques en termes de performances et les tables lorsque vous devez interroger les données immédiatement pendant ou après la capture.
Q : Puis-je automatiser SQL Server Collecte des traces du profileur ?
R : Oui, automatisez la collecte des traces à l'aide des traces côté serveur créées avec des procédures stockées T-SQL. Écrivez des scripts utilisant sp_trace_create et les procédures associées, puis planifiez leur exécution. SQL Server Tâches d'agent. Cette approche permet la collecte de traces sans surveillance selon des planifications spécifiques. Les scripts PowerShell offrent une autre option d'automatisation pour les scénarios plus complexes.
Q : Combien de temps dois-je exécuter une trace ?
R : La durée des traces dépend de vos objectifs. Pour résoudre des problèmes spécifiques, exécutez les traces pendant la reproduction du problème, généralement pendant 5 à 30 minutes. Pour l’analyse des performances, enregistrez au moins une heure pendant les pics d’activité. Pour l’analyse de la charge de travail ou la planification de la capacité, enregistrez plusieurs heures sur différentes périodes. Arrêtez toujours les traces une fois la surveillance terminée afin de libérer des ressources.
Q : Que dois-je faire si mon fichier de trace devient trop volumineux ?
A : Activez la rotation des fichiers dans les propriétés de la trace pour créer plusieurs fichiers plus petits au lieu d'un seul fichier volumineux. Définissez une taille maximale de fichier adaptée à votre espace disque et à vos besoins d'analyse. Utilisez des filtres pour réduire le volume d'événements capturés. Pour les traces volumineuses, envisagez d'analyser les données par segments plutôt que de charger la trace entière en une seule fois. Archivez ou supprimez régulièrement les anciens fichiers de trace pour optimiser l'espace disque.
Q : Comment puis-je trouver les requêtes entraînant une utilisation élevée du processeur ?
A : Créez une trace avec les événements SQL:BatchCompleted et RPC:Completed. Incluez les colonnes CPU, Durée et TextData. Filtrez par Durée pour ne capturer que les requêtes dépassant un seuil, par exemple 1000 millisecondes. Après la collecte des données, triez-les par la colonne CPU par ordre décroissant. Les requêtes en tête de liste consomment le plus de ressources.ost Temps processeur. Examinez ces requêtes afin d'identifier les possibilités d'optimisation, comme les index manquants ou une logique inefficace.
Q: Peut SQL Server Le profileur capture-t-il les plans d'exécution des requêtes ?
A: SQL Server Profiler peut capturer les informations du plan d'exécution via les événements Showplan XML de la catégorie Performance. Sélectionnez les événements Showplan XML ou Showplan XML Statistics Profile pour capturer les plans d'exécution complets. La colonne TextData contient les données du plan XML. Cependant, pour une analyse de routine des plans d'exécution, SQL Server Les fonctionnalités de plan d'exécution graphique de Management Studio ou Query Store offrent des alternatives plus simples.
Q : Quel est le meilleur modèle pour start avec pour la surveillance générale ?
A : Le modèle standard offre une bonne starPoint de référence pour la surveillance générale. Il inclut les événements d'exécution de requêtes courants, les appels de procédures stockées et le suivi des erreurs avec une surcharge équilibrée. Pour une surveillance à faible impact axée sur les performances des requêtes, utilisez le modèle TSQL. Personnalisez les modèles selon vos besoins spécifiques en ajoutant des filtres et en ajustant la sélection des événements après avoir compris les bases.
Q : Comment puis-je suivre uniquement une application ou un utilisateur spécifique ?
A : Utilisez les filtres de colonnes pour isoler des applications ou des utilisateurs spécifiques. Pour les applications, filtrez par la colonne ApplicationName en utilisant le nom spécifié dans votre chaîne de connexion. Pour les utilisateurs, filtrez par la colonne LoginName. SQL Server Nom de connexion ou nom de compte Windows. Combinez plusieurs filtres pour affiner votre recherche, par exemple en filtrant par ApplicationName et DatabaseName pour surveiller l'activité d'une application dans une base de données spécifique.
15. Conclusion et prochaines étapes
15.1 À emporter
SQL Server Malgré son statut obsolète, Profiler reste un outil précieux pour le dépannage ponctuel des bases de données. Son interface simple et sa capture complète des événements en font un outil idéal pour un diagnostic rapide.ostUtilisez Profiler pour les sessions de dépannage lorsque vous avez besoin de résultats immédiats. Utilisez Profiler pour résoudre des problèmes spécifiques, analyser le comportement des applications et réaliser des audits de sécurité.
Les bonnes pratiques incluent l'utilisation intensive de filtres pour minimiser l'impact sur les performances, la préférence pour les traces côté serveur en production et la limitation de la durée des traces aux périodes nécessaires. Sélectionnez uniquement les événements et colonnes essentiels pour réduire la charge de travail. Enregistrez les traces dans des fichiers plutôt que dans des tables pour de meilleures performances lors de la capture.
15.2 Aller de l'avant : adopter les outils modernes
Transition de SQL Server Passez de Profiler aux événements étendus pour des solutions de surveillance à long terme. Profiler reste fonctionnel, mais investir du temps dans l'apprentissage des événements étendus vous préparera pour l'avenir. SQL Server versions. Staravec des sessions Extended Events simples qui reproduisent vos traces Profiler habituelles.
Activez Query Store sur les bases de données de production pour bénéficier d'une surveillance automatique des performances sans configuration manuelle des traces. Query Store capture en continu les plans de requêtes et les statistiques d'exécution, fournissant ainsi des données de référence pour l'analyse des performances. Combinez Query Store avec tardes sessions d'événements étendus pour une surveillance complète.
15.3 Ressources supplémentaires
Les ressources suivantes vous aideront à approfondir votre SQL Server Connaissances du profileur et rester à jour avec les meilleures pratiques de surveillance :
Documentation officielle de Microsoft
- SQL Server Documentation du profileur – Référence complète pour les événements, les colonnes et les procédures
- Procédures stockées du système de traçage SQL – Référence T-SQL pour la création de traces côté serveur
- Documentation relative aux événements étendus – Conseils en matière de migration et approches modernes de suivi
- Documentation du magasin de requêtes – Référence de suivi automatique des performances des requêtes
- Outils de surveillance et d'optimisation des performances – Aperçu de tous SQL Server options de surveillance
Ressources communautaires
- SQL Server Central – Articles, forums et scripts pour les professionnels des bases de données
- Stack Overflow SQL Server Étiquette – Questions/Réponses de la communauté pour des questions de dépannage spécifiques
- Reddit r/SQLServer – Forum de discussion pour SQL Server sujets et conseils
- Forums SQLServerCentral.com – Discussions communautaires actives sur le profilage et les performances
- MSDN SQL Server Forums – Microsoft-hostforums de soutien communautaire pour l'éducation
Blogs et articles techniques
- SQL Server Analyseur de performances – Contenu dédié à la surveillance et à l'optimisation des performances
- Blog de Brent Ozar Unlimited – Meilleures pratiques d'optimisation et de surveillance des performances
- SQLSkills.com – Niveau expert SQL Server contenu provenant de leaders de l'industrie
- Microsoft SQL Server Blog – Mises à jour officielles des produits et annonces de nouvelles fonctionnalités
- Parler simplement – Pratique SQL Server tutoriels et études de cas
Formation et certification
- Microsoft Apprendre – Modules de formation en ligne gratuits pour SQL Server
- Microsoft Certified : Administrateur de base de données Azure Associate – Parcours de certification officiel
- Pluralsight SQL Server Cours – Formation vidéo sur le profilage et l'optimisation des performances
- LinkedIn Learning SQL Server Formation – Cours de perfectionnement professionnel
- Udemy SQL Server Cours de performance – Options de formation pratique
Livres
- SQL Server Optimisation des performances des requêtes – Guide complet d’optimisation des performances
- Pro SQL Server Fonctionnement interne – Analyse approfondie SQL Server architecture
- SQL Server Plans d'exécution – Comprendre l'optimisation des requêtes
- Indexation des performances des experts pour SQL Server – Conception et optimisation d’index
- SQL Server Dépannage avancé et optimisation des performances – Diagnostic avancéosttechniques ic
Outils et utilitaires
- SQL Server Studio de gestion – Interface principale pour SQL Server Profiler
- Studio de données Azure – Outil de base de données moderne multiplateforme
- sp_WhoIsActive – Procédure stockée de surveillance populaire créée par la communauté
- SQL Sentry Plan Explorer – Outil gratuit d'analyse des plans d'exécution
- DBForge Studio – Tiers SQL Server outil de développement et d'administration
À propos de l’auteur
Yuan Sheng est un administrateur de base de données senior (DBA) avec plus de 10 ans d'expérience dans SQL Server Environnements et gestion de bases de données d'entreprise. Il a résolu avec succès des centaines de scénarios de récupération de bases de données dans des organisations du secteur financier, de la santé et de l'industrie manufacturière.
Yuan se spécialise dans SQL Server récupération de base de données, solutions à haute disponibilitéet l'optimisation des performances. Son expérience pratique approfondie comprend la gestion de bases de données multi-téraoctets et la mise en œuvre Groupes de disponibilité toujours activéset en développant des stratégies automatisées de sauvegarde et de restauration pour les systèmes d'information critiques de l'entreprise.
Grâce à son expertise technique et à son approche pratique, Yuan se concentre sur la création de guides complets qui aident les administrateurs de bases de données et les professionnels de l'informatique à résoudre des problèmes complexes. SQL Server défis efficacement. Il se tient au courant des dernières SQL Server les versions et les technologies de base de données en constante évolution de Microsoft, testant régulièrement des scénarios de récupération pour garantir que ses recommandations reflètent les meilleures pratiques du monde réel.
Vous avez des questions sur SQL Server Besoin d'aide pour la récupération de votre base de données ? Yuan vous accueille. commentaires et suggestions pour améliorer ces ressources techniques.























