Abfrage der aktiven Locks

25/05/2009 - 09:05 von Klaus Mayer | Report spam
Hallo,
ich steh' mal wieder schick auf'm Schlauch. Ich möchte mit einer
Abfrage die Tabelle und den dazugehörigen Client ermitteln, auf
welcher gerade ein Transaction Lock aktiv ist.
Mein Denkansatz

SELECT DISTINCT sys.objects.name, sys.dm_exec_sessions.host_name,
sys.dm_exec_requests.transaction_isolation_level
FROM sys.dm_tran_locks INNER JOIN
sys.dm_exec_requests ON sys.dm_tran_locks.request_owner_id sys.dm_exec_requests.transaction_id INNER JOIN sys.objects ON
sys.dm_tran_locks.resource_associated_entity_id sys.objects.object_id RIGHT OUTER JOIN sys.dm_exec_sessions ON
sys.dm_exec_sessions.session_id = sys.dm_exec_requests.session_id

liefert mir aber, egal wie ich es drehe, entweder nur den Client oder
den Level und die Tabelle :(

Wer kann bitte helfen?

Vielen Dank schonmal,

Klaus
 

Lesen sie die antworten

#1 Klaus Mayer
26/05/2009 - 08:10 | Warnen spam
Ok, damit sollte es klappen:

SELECT sys.dm_exec_sessions.host_name,
sys.dm_exec_sessions.program_name,
sys.dm_tran_locks.resource_associated_entity_id,
sys.objects.name, sys.dm_exec_sessions.transaction_isolation_level
FROM sys.dm_tran_locks INNER JOIN
sys.dm_exec_sessions ON sys.dm_tran_locks.request_session_id sys.dm_exec_sessions.session_id INNER JOIN
sys.objects ON sys.dm_tran_locks.resource_associated_entity_id sys.objects.object_id

Schöne Grüße,

Klaus

Ähnliche fragen