Afficher et analyser des traces avec SQL Server Profiler
S'applique à : SQL Server Azure SQL Managed Instance
Utilisez SQL Server Profiler pour afficher les données d'événement capturées dans une trace. SQL Server Profiler affiche les données selon les propriétés de trace définies. L’une des façons d'analyser les données de SQL Server consiste à les copier dans un autre programme, par exemple SQL Server ou l'Assistant Paramétrage du Moteur de base de données . Moteur de base de données L’Assistant Paramétrage peut utiliser un fichier de trace qui contient des événements de traitement SQL et d’appels de procédures distantes si la colonne de données Text est présente dans la trace. Pour être sûr que les colonnes et les événements nécessaires sont bien présents pour être utilisés avec l’Assistant Paramétrage du moteur de base de données , utilisez le modèle de paramétrage prédéfini fourni avec SQL Server Profiler.
Quand vous ouvrez une trace en utilisant SQL Server Profiler, il n’est pas nécessaire que le fichier de trace porte l’extension .trc si le fichier a été créé par SQL Server Profiler ou par des procédures stockées du système de trace SQL.
Notes
SQL Server Profiler peut également lire les fichiers .log de trace SQL et les fichiers de script SQL génériques. Si vous ouvrez un fichier de trace SQL qui ne porte pas l’extension .log, par exemple le fichier trace.txt, spécifiez SQLTrace_Log comme format de fichier.
Vous pouvez configurer le format d'horodatage du SQL Server Profiler pour vous aider dans l'analyse des traces.
Dépannage de problèmes liés aux données
Le SQL Server Profilervous permet de résoudre des problèmes de données en regroupant les traces ou les fichiers de traces dans quatre colonnes : Duration, CPU, Readset Writes . Le genre de données que vous pourriez être amené à réparer pourrait être une requête qui fonctionne mal ou qui a un nombre exceptionnellement élevé de lectures logiques.
Vous pouvez trouver des informations complémentaires en enregistrant les traces dans des tables et en utilisant Transact-SQL pour interroger les données d'événement. Par exemple, pour déterminer quels événements SQL:BatchCompleted ont présenté des délais d'attente excessifs, exécutez :
SELECT TextData, Duration, CPU
FROM trace_table_name
WHERE EventClass = 12 -- SQL:BatchCompleted events
AND CPU < (Duration * 1000)
Notes
Le serveur signale la durée d’un événement en microsecondes (10^-6 secondes) et le temps UC utilisé par l’événement en millisecondes (10^-3 secondes). L'interface utilisateur graphique de SQL Server Profiler affiche par défaut la colonne Durée en millisecondes. Cependant, quand la trace est enregistrée dans un fichier ou une table de base de données, la valeur de la colonne Durée est mentionnée en microsecondes. Ces mesures sont destinées aux requêtes Transact-SQL (T-SQL).
Affichage de noms d'objets durant l'affichage des traces
Pour afficher le nom d’un objet au lieu de son identificateur (Object ID), vous devez capturer les colonnes Server Name et Database ID en plus de la colonne Object Name .
Si vous choisissez de regrouper les traces par Object ID , assurez-vous de les regrouper d’abord par Server Name et par Database ID , puis par Object ID . De même, si vous choisissez de regrouper les traces par Index ID , assurez-vous de les regrouper d’abord par Server Name, Database IDet Object ID , puis par Index ID . Cet ordre doit être respecté parce que les ID d'objet et d'index ne sont pas les mêmes sur tous les serveurs et dans toutes les bases de données (et un objet n'a pas toujours le même ID d'index).
Détection d'événements spécifiques dans une trace
Pour rechercher des événements dans une trace et les regrouper, exécutez les étapes suivantes :
Créez votre trace.
Lorsque vous définissez la trace, capturez les colonnes de données Event Class, ClientProcessIDet Start Time en plus des autres colonnes de données que vous souhaitez capturer. Pour plus d’informations, consultez Créer une trace (SQL Server Profiler).
Regroupez les données capturées sur la colonne Event Class, puis capturez la trace dans un fichier ou une table. Pour regrouper les données capturées, cliquez sur Organiser les colonnes dans l'onglet Sélection des événements de la boîte de dialogue Propriétés de la trace. Pour plus d’informations, consultez Organiser les colonnes affichées dans une trace (SQL Server Profiler).
Démarrez la trace et arrêtez-la une fois que la durée spécifiée est écoulée ou que les événements nécessaires ont été capturés.
Trouvez les événements cibles.
Ouvrez le fichier ou la table de trace et développez le nœud de la classe d'événements de votre choix, par exemple Deadlock Chain. Pour plus d’informations, consultez Ouvrir un fichier de trace (SQL Server Profiler) ou Ouvrir une table de trace (SQL Server Profiler).
Parcourez la trace jusqu’à ce que vous trouviez les événements que vous recherchez (pour vous aider, utilisez l’option Rechercher du menu Modifier de SQL Server Profiler ). Notez les valeurs contenues dans les colonnes de données ClientProcessID et Start Time des événements de votre choix.
Affichez les événements en contexte.
Affichez les propriétés de la trace, et regroupez-les par ClientProcessIDplutôt que par Event Class .
Développez les nœuds de chaque ID de processus client que vous souhaitez afficher. Parcourez la trace manuellement ou utilisez l’option Rechercher jusqu’à ce que vous trouviez les valeurs Start Timeprécédemment notées pour les événements cibles. Les événements sont affichés dans l'ordre chronologique avec les autres événements relatifs à chaque ID de processus client sélectionné. Par exemple, les événements Interblocage et Interblocage Chain, capturés dans la trace, se trouveront immédiatement après les événements SQL:BatchStartingevents within the expeted client process ID.
La même technique peut être utilisée pour retrouver des événements regroupés. Une fois que vous avez trouvé les événements recherchés, regroupez-les par ClientProcessID, ApplicationName, ou autre classe d’événements pour afficher les activités qui y sont liées dans l’ordre chronologique.