2010-11-10 4 views
1

Je regarde ma boîte SQL Server 2008, et je vois une requête qui a fonctionné pendant longtemps. Je sais qu'il a été lancé par le serveur Web - mais je veux savoir quelle est la requête ASP.NET à blâmer. (De cette façon, je peux voir quel utilisateur/IP est derrière.)Comment puis-je voir quelle requête ASP.NET est derrière une requête SQL en cours d'exécution?

sys.dm_exec_requests me donne un ID de session pour la requête. Comment puis-je savoir quelle requête ASP.NET attend une réponse de cette session_ID?

Répondre

2

Il n'y a pas de relation sauf si vous le créez. Appel de base de données ne sait rien à propos de la session ASP.NET. L'identifiant de session que vous avez mentionné est la session SQL.

La solution la plus simple consiste à ajouter un suivi avec les informations de session.

UPDATE Tracing:

1) Enable tracing

2) début de la trace de la base de données d'appel avec l'identifiant de session ou l'identifiant utilisateur

3) Trace extrémité de base de données d'appel avec l'ID de session ou identifiant de l'utilisateur. Calculez combien de temps cela a pris et tracez cela aussi.

+0

Pouvez-vous expliquer comment ajouter ce type de suivi? Merci! – Jesse

+0

Voir ma mise à jour s'il vous plaît. – Aliostad

0

Si ce n'est que pour le débogage, voici un hack que j'ai utilisé par le passé. Le ConnectionString a un paramètre de chaîne disponible nommé "Application". Vous pouvez mettre ce que vous voulez dans ce paramètre et il apparaîtra sur le moniteur d'activité dans SQL Management Studio.

+0

C'est exactement ce dont j'avais besoin - merci! – Jesse

+0

Désolé, j'ai dû décocher la case "réponse" car je me suis rendu compte que si je pouvais utiliser le paramètre Application pour transmettre un sessionID, cela empêcherait le pool de connexion de fonctionner - chaque chaîne de connexion serait différente. – Jesse

Questions connexes