2013-04-03 19 views
0

sqlserver的結合2005-2008查詢,找出死鎖和識別查詢文本如何結合sys.dm_exec_query_stats動態管理和sys.dm_tran_locks的結果

我有下面的查詢,可以給我鎖定狀態時,還告訴我命令,導致鎖

SELECT 
    object_name(sl.resource_associated_entity_id) as 'TableName' , 
    dr.command, 
    sl.* 
FROM 
    sys.dm_tran_locks as sl 
     LEFT JOIN 
     sys.dm_exec_requests dr 
     ON 
     sl.request_session_id=dr.session_id 
WHERE 
    sl.resource_type = 'OBJECT' 

我有另一個查詢,給了我查詢文本是如下

SELECT top 5 deqs.last_execution_time AS [Time], dest.text AS [Query], 
FROM sys.dm_exec_query_stats AS deqs 
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest 
ORDER BY deqs.last_execution_time DESC 

,但我不知道我怎樣才能既包括查詢,以便我可以獲得鎖定交易查詢。任何幫助讚賞。

回答

1

我創建此查詢應該工作。

SELECT 
     object_name(sl.resource_associated_entity_id) as 'TableName' , 
     dr.command, dest.text , 
     sl.* 
    FROM 
     sys.dm_tran_locks as sl 
      LEFT JOIN 
      sys.dm_exec_requests dr 
      ON 
      sl.request_session_id=dr.session_id 

      CROSS APPLY sys.dm_exec_sql_text(dr.sql_handle) AS dest 

    WHERE 
     sl.resource_type = 'OBJECT'