La réponse de Kevin décrit les événements à capturer dans SQL Trace / SQL Profiler. Pour développer un peu cette réponse - SP:StmtCompleted
vous montrera chaque instruction dans une procédure stockée en cours d'achèvement, comme cela semble.
De plus, si vous êtes sur un système occupé et que vous essayez de diagnostiquer un problème de performances, vous devez être prudent avec SQL Profiler. SQL Profiler est beaucoup plus lent que le traçage d'un fichier ou l'utilisation d'événements étendus. Ce billet de blog de Jonathan Kehayias montre une surcharge d' environ 90% sur les performances d'un système à l'aide de SQL Profiler et une surcharge d'environ 10% du suivi au fichier. Moins pour les événements prolongés. C'est pourquoi il est généralement recommandé de ne pas exécuter SQL Profiler lui-même
Bien que ces informations soient disponibles via les événements étendus, je suggère d'utiliser toujours SQL Trace (la technologie derrière SQL Profiler) mais à suivre un fichier à la place(si vous vouliez investir dans l'apprentissage et l'utilisation des événements étendus, ce serait la voie à suivre, dans une future version de SQL Server SQL Trace aura disparu et tout ce que nous aurons sera des événements étendus). Je vous suggère également de filtrer via le bouton Filtres de colonne autant de bruit de fond que possible pour vous assurer que vous capturez uniquement ce qui est nécessaire. Vous pouvez configurer votre trace avec l'outil Profiler en suivant les étapes décrites par Kevin dans sa bonne réponse, puis ajouter un filtre à partir de la même interface graphique. Ensuite, vous pouvez exporter la trace en tant que script et exécuter ce script sur le traçage SQL Server vers un fichier sur un dossier qui ne contient pas de fichiers de base de données ou de journal des transactions. Pour exporter, vous devez simplement configurer votre trace, l'exécuter pendant quelques secondes pour vous assurer de capturer ce que vous voulez, l'arrêter, puis aller dans la barre de menus et ->File
->Export
Script Trace Definition
et enregistrez le fichier. Ouvrez ensuite ce fichier dans une nouvelle fenêtre de requête sur le serveur que vous souhaitez suivre. Vous pouvez en savoir plus sur les options et les définitions de ce script que vous avez créé en consultant les articles d'aide pour les différentes procédures stockées utilisées dans ce script que vous venez de créer en commençant ici .
Si vous avez le temps et que vous souhaitez apprendre, vous pouvez également lire certains articles sur les événements étendus et voir comment capturer les informations également. Jonathan Kehayias est une excellente ressource pour les articles de blog lorsque vous êtes prêt à commencer là-bas.
Vous pouvez capturer les instructions individuelles dans une procédure stockée via SQL Server Profiler. Pour ce faire, dans votre onglet Sélection d'événements, cochez la case "Afficher tous les événements". Faites ensuite défiler la liste jusqu'à la catégorie Procédures stockées et cochez la case en regard de SP: StmtCompleted . Si vous avez également sélectionné les événements SQL: BatchStarted et SQL: BatchCompleted , vous pouvez obtenir une image du début à la fin d'une exécution de procédure stockée, en les liant tous ensemble par SPID.
Il peut également être utile d'examiner le cache du plan pour voir si vous pouvez obtenir un plan de requête pour votre procédure à exécution lente. Vous pouvez commencer par quelque chose comme ceci:
la source