Affichage et analyse des traces avec le Générateur de profils SQL Server
Utilisez le SQL Server Profiler pour afficher les données d'événement capturées dans une trace. SQL Server Profiler affiche les données en fonction des 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. L'Assistant Paramétrage du Moteur de base de données peut utiliser un fichier de trace qui contient des événements de traitements SQL et d'appels de procédures distantes si la colonne de données Text est présente dans la trace. Pour plus d'informations, consultez Paramétrage du modèle physique de la base de données. Pour vous assurer 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.
Si vous ouvrez une trace en utilisant le 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 le SQL Server Profiler ou des procédures stockées du système de trace SQL.
[!REMARQUE]
Le SQL Server Profiler peut également lire les fichiers de trace SQL portant l'extension .log 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 Profiler vous permet de résoudre des problèmes de données en regroupant les traces ou les fichiers de traces dans quatre colonnes : Duration, CPU, Reads et 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)
[!REMARQUE]
À compter de SQL Server 2005, le serveur signale la durée d'un événement en microsecondes (un millionième, ou 10-6, de seconde) et le temps UC utilisé par l'événement en millisecondes (un millième, ou 10-3, de seconde). Dans SQL Server 2000, le serveur indiquait la durée aussi bien que le temps UC en millisecondes. Dans SQL Server 2005 et les versions ultérieures, l'interface utilisateur graphique de SQL Server Profiler affiche par défaut la colonne Durée en millisecondes, mais 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.
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 ID d'objet, assurez-vous de les regrouper d'abord par Nom de serveur et par ID de base de données. De même, si vous choisissez de regrouper les traces par ID d'index, assurez-vous de les regrouper d'abord par Nom de serveur, par ID de base de données et par ID d'objet. 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, ClientProcessID et Start Time en plus des autres colonnes de données que vous souhaitez capturer. Pour plus d'informations, consultez Procédure : créer une trace (Générateur de profils SQL Server).
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 Procédure : organiser les colonnes affichées dans une trace (Générateur de profils SQL Server).
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 Procédure : ouvrir un fichier de trace (Générateur de profils SQL Server) ou Procédure : ouverture d'une table de trace (Générateur de profils SQL Server).
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 par ClientProcessID plutô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 Heure de débutpré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 Deadlock et Deadlock Chain, capturés dans la trace, se trouveront immédiatement après les événements SQL:BatchStarting dans l'ID de processus client développé.
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, par ApplicationName ou autre afin d'afficher les activités qui y sont liées dans l'ordre chronologique.
Voir aussi