SQL Server Profiler
S'applique à : SQL Server Azure SQL Managed Instance
SQL Server Profiler est une interface puissante, qui permet de créer et gérer des traces, ainsi que d’analyser et de relire les résultats de trace. Les événements sont enregistrés dans un fichier de trace, qui peut être analysé ou utilisé ultérieurement pour relire une série d’étapes spécifique lors du diagnostic d’un problème.
Important
- Trace SQL et SQL Server Profiler sont dépréciés. L’espace de noms Microsoft.SqlServer.Management.Trace qui contient les objets Trace et Replay Microsoft SQL Server est également déconseillé. Cependant, les charges de travail Analysis Services sont prises en charge.
- Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.
- Utilisez plutôt des événements étendus. Pour plus d’informations sur les événements étendus, consultez Démarrage rapide : Événements étendus dans SQL Server et SSMS XEvent Profiler.
Remarque
Quand vous tentez de vous connecter à la base de données Azure SQL à partir du Générateur de profils SQL, un message d'erreur trompeur apparaît, comme suit :
- Pour exécuter une trace sur SQL Server, vous devez être membre du rôle serveur fixe sysadmin ou bénéficier de l’autorisation ALTER TRACE.
Ce message devrait expliquer que Azure SQL Database n’est pas pris en charge par le profileur SQL Server.
Où se trouve le Générateur de profils ?
Vous pouvez démarrer Profiler dans SQL Server Management Studio ou avec Azure Data Studio à l’aide de l’extension SQL Server Profiler.
Capturer et relire les données de trace
Le tableau suivant indique les fonctionnalités que nous vous conseillons d’utiliser dans SQL Server pour capturer et relire les données de trace.
Fonctionnalité/Charge de travail cible | Moteur relationnel | Analysis Services |
---|---|---|
Capture de trace | Interface utilisateur graphique desévénements étendus dans SQL Server Management Studio | SQL Server Profiler |
Relecture de trace | Distributed Replay | SQL Server Profiler |
Utiliser SQL Server Profiler
Le SQL Server Profiler est une interface utilisateur graphique de Trace SQL qui permet de surveiller une instance du Moteur de base de données ou Analysis Services. Vous pouvez capturer et enregistrer des données sur chaque événement dans un fichier ou dans une table en vue d'une analyse ultérieure. Par exemple, vous pouvez surveiller un environnement de production pour savoir quelles procédures stockées affectent les performances en s'exécutant trop lentement. SQL Server Profiler est utilisé pour des activités telles que :
Exécuter pas à pas des requêtes posant problème afin d'en déterminer la cause.
Détecter les requêtes s'exécutant lentement et diagnostiquer la cause du problème.
Capturer la série d'instructions Transact-SQL conduisant à un problème. La trace enregistrée peut répliquer le problème sur un serveur test à partir duquel il est possible de diagnostiquer sa cause.
Surveiller les performances de SQL Server en vue de paramétrer les charges de travail. Pour plus d'informations sur le paramétrage de la conception d'une base de données physique pour les charges de travail de base de données, consultez Database Engine Tuning Advisor.
Mise en corrélation des compteurs de performances pour diagnostiquer des problèmes.
SQL Server Profiler prend également en charge l'audit des actions exécutées sur des instances de SQL Server. Les audits enregistrent les actions relatives à la sécurité en vue de leur examen ultérieur par l'administrateur de la sécurité.
Concepts de SQL Server Profiler
Pour utiliser le SQL Server Profiler, vous devez comprendre les termes qui décrivent le fonctionnement de l'outil.
Remarque
Pour utiliser SQL Server Profiler, il est utile de bien comprendre Trace SQL. Pour en savoir plus, voir SQL Trace.
Événement
Un événement est une action générée dans une instance de Moteur de base de données SQL Server. En voici quelques exemples :
- connexions d'accès, échecs et déconnexions ;
- Instructions Transact-SQL
SELECT
,INSERT
,UPDATE
etDELETE
. - état du traitement d'appel de procédure distante (RPC) ;
- le lancement ou la fin d'une procédure stockée ;
- le lancement ou la fin d'instructions à l'intérieur de procédures stockées ;
- le lancement ou la fin d'un traitement SQL ;
- une erreur consignée dans le journal des erreurs de SQL Server ;
- un verrou placé ou libéré sur un objet de la base de données ;
- un curseur ouvert ;
- vérifications des autorisations de sécurité.
La trace affiche toutes les données générées par un événement sur une seule ligne. Cette ligne est composée de champs de colonnes de données qui décrivent l'événement en détail.
EventClass
Une classe d'événements est un type d'événement qui peut être tracé. La classe d'événements contient toutes les données qu’un événement peut signaler. Voici des exemples de classes d’événements :
- SQL:BatchCompleted
- Audit Login
- Audit Logout
- Lock: Acquired
- Lock: Released
EventCategory
Une catégorie d'événements définit la façon dont les événements sont regroupés dans le SQL Server Profiler. Par exemple, toutes les classes d'événements de verrou sont regroupées à l'intérieur de la catégorie d'événements Verrous. Toutefois, les catégories d'événements n'existent que dans le SQL Server Profiler. Ce terme ne reflète pas la façon dont les événements du moteur sont regroupés.
DataColumn
Une colonne de données est un attribut d’une classe d’événements capturée dans la trace. Chaque classe d'événements détermine le type des données qui peuvent être recueillies. C'est pourquoi les colonnes de données ne s'appliquent pas toutes à toutes les classes d'événements. Par exemple, dans une trace qui capture la classe d’événements Lock: Acquired, la colonne de données BinaryData contient la valeur de l’ID de la page verrouillée ou de la ligne, mais la colonne de données Integer Data ne contient aucune valeur car elle n’est pas applicable à la classe d’événements faisant l’objet d’une capture.
Modèle
Un modèle définit la configuration par défaut d'une trace. Il comprend notamment les classes d'événements à surveiller avec le SQL Server Profiler. Par exemple, vous pouvez créer un modèle en spécifiant les événements, les colonnes de données et les filtres. Un modèle n’est pas exécuté mais est enregistré sous la forme d’un fichier portant l’extension .tdf. Une fois enregistré, le modèle contrôle les données de trace capturées à l'exécution d'une trace basée sur celui-ci.
Trace
Une trace capture des données en fonction de classes d'événements, de colonnes de données et de filtres spécifiques. Par exemple, vous pouvez créer un modèle pour tracer les erreurs d’exception. Vous sélectionnez la classe d'événements Exception et les colonnes de données Error, Stateet Severity pour ce faire. Les données de ces trois colonnes doivent être récupérées afin que les résultats de trace fournissent des données significatives. Vous pouvez ensuite exécuter une trace configurée de la sorte, et collecter les données de tout événement Exception dans le serveur. Les données de trace peuvent être enregistrées ou utilisées immédiatement pour une analyse. Les traces peuvent être relues ultérieurement, bien que certains événements, tels que Exception, ne soient jamais relus. Vous pouvez également enregistrer la trace en tant que modèle en vue de créer des traces similaires.
SQL Server vous permet de tracer une instance SQL Server de deux façons : à l'aide de SQL Server Profiler, ou de procédures stockées système.
Filtrer
Lorsque vous créez une trace ou un modèle, vous pouvez définir des critères pour filtrer les données récupérées par l'événement. Pour éviter que les traces ne deviennent trop volumineuses, vous pouvez les filtrer de manière à ce que seul un sous-ensemble des données d'événement soit recueilli. Par exemple, la limitation des noms d'utilisateurs Microsoft Windows contenus dans la trace à des utilisateurs spécifiques réduit les données de sortie.
Si aucun filtre n'est défini, la sortie de la trace renvoie tous les événements des classes d'événements sélectionnées.
Tâches de SQL Server Profiler
Description de la tâche | Article |
---|---|
Répertorie les modèles prédéfinis que SQL Server fournit pour surveiller certains événements, et les autorisations requises à utiliser pour relire les traces. | Modèles et autorisations du générateur de SQL Server Profiler |
Décrit comment exécuter Profiler SQL Server. | Autorisations nécessaires pour exécuter SQL Server Profiler |
Décrit comment créer une trace. | Créer une trace (SQL Server Profiler) |
Décrit comment spécifier les événements et les colonnes de données d'un fichier de trace. | Spécifier les événements et les colonnes de données d'un fichier de trace (SQL Server Profiler) |
Explique comment enregistrer les résultats de trace dans un fichier. | Enregistrer des résultats d'une trace dans un fichier (SQL Server Profiler) |
Explique comment enregistrer les résultats de trace dans une table. | Enregistrer des résultats d'une trace dans une table (SQL Server Profiler) |
Explique comment filtrer des événements dans une trace. | Filtrer des événements dans une trace (SQL Server Profiler) |
Explique comment afficher les informations de filtre. | Afficher des informations de filtre (SQL Server Profiler) |
Explique comment modifier un filtre. | Modifier un filtre (SQL Server Profiler) |
Explique comment définir une taille maximale pour un fichier de trace (SQL Server Profiler). | Définir une taille maximale de fichier de trace (SQL et autres). |
Explique comment définir une taille maximale de table de trace. | Définir une taille maximale de table de trace (SQL Server Profiler) |
Décrit comment démarrer une trace. | Démarrer une trace |
Explique comment démarrer automatiquement une trace après s'être connecté à un serveur. | Démarrer automatiquement une trace après s'être connecté à un serveur (SQL Server Profiler) |
Explique comment filtrer des événements en fonction de l'heure de début de l'événement. | Filtrer des événements en fonction de l'heure de début de l'événement (SQL Server Profiler) |
Explique comment filtrer des événements en fonction de l'heure de fin de l'événement. | Filtrer des événements en fonction de leur heure de fin (SQL Server Profiler) |
Explique comment filtrer les identificateurs de processus serveur (SPID, Server Process ID) dans une trace. | Filtrer les identificateurs de processus serveur (SPID, Server Process ID) dans une trace (SQL et autres ) |
Décrit comment suspendre une trace. | Suspendre une trace (SQL Server Profiler) |
Décrit comment arrêter une trace. | Arrêter une trace (SQL Server Profiler) |
Décrit comment exécuter une trace après son interruption ou son arrêt. | Exécuter une trace après qu'elle a été suspendue ou arrêtée (SQL Server Profiler) |
Décrit comment effacer une fenêtre de trace. | Effacer une fenêtre de trace (SQL Server Profiler) |
Décrit comment fermer une fenêtre de trace. | Fermer une fenêtre de trace (SQL Server Profiler) |
Décrit comment définir des paramètres par défaut de définition de trace. | Définir des paramètres par défaut de trace (SQL Server Profiler) |
Décrit comment définir des valeurs par défaut d'affichage de trace. | Définir l'affichage par défaut des traces (SQL Server Profiler) |
Décrit comment ouvrir un fichier de trace. | Ouvrir un fichier de trace (SQL Server Profiler) |
Décrit comment ouvrir une table de trace. | Ouvrir une table de trace (SQL Server Profiler) |
Décrit comment relire une table de trace. | Relire une table de trace (SQL Server Profiler) |
Décrit comment relire un fichier de trace. | Relire un fichier de trace (SQL Server Profiler) |
Décrit comment relire un seul événement à la fois. | Relire un seul événement à la fois (SQL Server Profiler) |
Décrit comment relire jusqu'à un point d'arrêt. | Relecture jusqu'à un point d'arrêt (SQL Server Profiler) |
Décrit comment relire jusqu'à un curseur. | Relire jusqu'à un curseur (SQL Server Profiler) |
Décrit comment relire un script Transact-SQL. | Relire un script Transact-SQL (SQL Server Profiler) |
Décrit comment créer un modèle de trace. | Créer un modèle de trace (SQL Server Profiler) |
Explique comment modifier un modèle de trace. | Modifier un modèle de trace (SQL Server Profiler) |
Explique comment définir les options globales de trace. | Définir les options globales de trace (SQL Server Profiler) |
Explique comment rechercher une valeur ou une colonne de données au cours de l'exécution d'une trace. | Retrouver une valeur ou une colonne de données pendant le suivi (SQL Server Profiler) |
Explique comment dériver un modèle d'une trace en cours d'exécution. | Dériver un modèle à partir d'une trace en cours d'exécution (SQL Server Profiler) |
Explique comment dériver un modèle d'un fichier de trace ou d'une table de trace. | Dériver un modèle à partir d'un fichier de trace ou d'une table de trace (SQL Server Profiler) |
Explique comment créer un script Transact-SQL pour exécuter une trace. | Créer un script Transact-SQL pour exécuter une trace (SQL Server Profiler) |
Décrit comment exporter un modèle de trace. | Exporter un modèle de trace (SQL Server Profiler) |
Décrit comment importer un modèle de trace. | Importer un modèle de trace (SQL Server Profiler) |
Décrit comment extraire un script d'une trace. | Extraire un script d'une trace (SQL Server Profiler) |
Explique comment corréler une trace avec les données du journal de performances Windows. | Corréler une trace aux données du journal de performances Windows (SQL Server Profiler) |
Décrit comment organiser les colonnes affichées dans une trace. | Organiser les colonnes affichées dans une trace (SQL Server Profiler) |
Décrit comment démarrer SQL Server Profiler. | Démarrer SQL Server Profiler |
Explique comment enregistrer les traces et les modèles de trace. | Enregistrer des traces et de modèles de trace |
Explique comment modifier les modèles de trace. | Modifier des modèles de trace |
Explique comment corréler une trace avec les données du journal de performances Windows. | Mettre en corrélation une trace avec les données du journal de performances Windows |
Décrit comment afficher et analyser des traces avec SQL Server Profiler. | Afficher et analyser des traces avec SQL Server Profiler |
Décrit comment analyser des blocages avec SQL Server Profiler. | Analyser des blocages à l'aide de SQL Server Profiler |
Décrit comment analyser des requêtes avec des résultats SHOWPLAN dans le Générateur de profils SQL Server. | Analyser des requêtes avec des résultats SHOWPLAN dans SQL Server Profiler |
Décrit comment filtrer des traces avec SQL Server Profiler. | Filtrer des traces avec SQL Server Profiler |
Décrit comment utiliser les fonctionnalités de relecture du SQL Server Profiler. | Relire des traces |
Répertorie les articles d'aide contextuelle pour SQL Server Profiler. | Aide (F1) du Générateur de profils SQL |
Répertorie les procédures stockées système utilisées par le SQL Server Profiler pour contrôler l'activité et les performances. | Procédures stockées du Générateur de profils SQL Server (Transact-SQL) |
Événements étendus vs. SQL Server Profiler
Les événements étendus et SQL Server Profiler sont des outils permettant de surveiller et de résoudre les problèmes de performances de SQL Server. SQL Server Profiler est déconseillé et ne doit être utilisé qu’avec Analysis Services. Les événements étendus sont le remplacement de SQL Server Profiler et fournissent des fonctionnalités de résolution des problèmes avancées qui ne sont pas disponibles ailleurs. Les principales différences sont indiquées ici pour faciliter la migration de SQL Server Profiler vers les événements étendus.
Outil associé aux événements étendus
Les événements étendus sont un système de gestion des événements léger, hautement évolutif et flexible intégré à SQL Server.
Les sessions Événements étendus consomment généralement moins de ressources que SQL Trace et SQL Server Profiler, ce qui les rend plus adaptées aux environnements de production. Les événements étendus prennent en charge la capture d’événements disponibles dans les versions modernes de SQL.
En revanche, les événements disponibles dans SQL Trace/SQL Server Profiler sont limités aux fonctionnalités disponibles dans SQL Server 2008R2 et versions antérieures. Les événements étendus offrent des fonctionnalités de filtrage supérieures, une charge utile par défaut plus petite et des fonctionnalités non proposées dans Profiler, telles que les cibles en mémoire et les cibles d’agrégation et la prise en charge multi-cible.
Pour plus d'informations sur les événements étendus, consultez événements étendus.
Outil SQL Server Profiler
SQL Server Profiler est une interface utilisateur graphique qui utilise SQL Trace pour capturer l’activité d’une instance de SQL Server ou Analysis Services.
SQL Server Profiler peut être gourmand en ressources s’il est configuré de manière incorrecte, ce qui a un impact sur les performances du serveur, en particulier lorsqu’il est utilisé sur des serveurs de production. Il a des modèles intégrés pour prendre en charge le suivi rapide.
En résumé, bien que SQL Server Profiler soit un outil plus ancien qui peut être familier à de nombreux utilisateurs, les événements étendus sont une alternative moderne qui offre de meilleures performances, des informations sur les événements plus détaillées et des fonctionnalités pour la résolution des problèmes et la surveillance des instances SQL Server non disponibles ailleurs. En raison de ses avantages par rapport à Profiler, les événements étendus sont recommandés pour le nouveau travail de suivi et de surveillance.