j'ai couru ci-dessous requête sur une session
begin tran
update orderstst
set unitprice=unitprice+1
waitfor delay '00:00:20'
et couru ci-dessous dmv pendant que la requête est en cours d'exécution sur les autres .. séance
select resource_database_id,request_mode,request_type,request_status,txt.text
from sys.dm_tran_locks lck
join
sys.dm_exec_requests ec
on ec.session_id=lck.request_session_id
cross apply
sys.dm_exec_Sql_text(ec.sql_handle) txt
Je suis arrivé ci-dessous les données ...
lorsque la transaction n'est pas encore validée, mais terminée, j'ai couru au-dessus de dmv à nouveau. mais n'a pas obtenu de sortie.since cela n'est pas en cours d'exécution.
Mais en cours d'exécution ci-dessous dmv, va encore me donner verrouiller toutes les informations de tenue de sessions locks..so vous serez en mesure d'identifier quelle session tient plus de verrous
select resource_database_id,request_mode,request_type,request_status
from sys.dm_tran_locks lck
join
sys.dm_exec_sessions ec
on ec.session_id=lck.request_session_id
Au-dessus de requête me donne ci-dessous les informations ..
donc, en résumé, vous devez exécuter DMV1 ou DMV2 pendant une certaine période par l'emploi d'agent sql et l'insérer dans une table pour analaysis plus tard ..
En outre de SQL 2012, vous pouvez également utiliser des événements étendus ..
Accédez à Gestion -> Événements étendus, cliquez avec le bouton droit de la souris et lancez l'assistant de nouvelle session.
Donnez-lui un nom et vérifiez début au démarrage du serveur
écran suivant vous donne une option pour sélectionner le modèle par défaut ou non, je choisis modèle par défaut pour les serrures comme illustré ci-dessous et cliquez sur suivant ..
dans l'écran suivant, vous pouvez choisir différents événements, dans le canal, sélectionnez tous les canaux et faire la même chose dans les catégories et aussi sélectionner les événements de votre intér t, je choisis ci-dessous ..
Dans cet écran, vous pouvez sélectionner des actions, je choisis le texte, IdSession
Dans l'écran suivant, filtre comme, disons, par exemple ..gather événements que pour un databasename comme 'somename' ou requête comme un texte ..
Écran suivant est l'endroit où vous pouvez enregistrer le fichier sur le disque pour une analyse ultérieure ..
repos complet d'écrans et enfin sélectionnez Session d'événement déclencheur immédiatement l'option ..
Lorsque vous avez terminé la collecte des données , à des événements prolongés et arrêter la session que vous cliquez created.Right et dire la cible de vue data..which ci-dessous indique screenn
événements étendus devraient avoir Caug ht ça. Pouvez-vous mettre à jour votre message avec la définition de session? –