t1.resource_associated_entity_id AS [阻塞资源对象],t1.resource_description as [资源描述信息], t1.request_mode AS [请求的锁],SELECT t1.resource_type AS [锁类型], DB_NAME(resource_database_id) AS [数据库名],t1.request_session_id AS [等待会话], t2.wait_duration_ms AS [等待时间],
查询阻塞sql以及锁
select text, * from sys.dm_exec_requests er cross apply sys.dm_exec_sql_text(er.sql_handle)
select t1.resource_type as [锁类型], db_name(resource_database_id) as [数据库名],
t1.resource_associated_entity_id as [阻塞资源对象],t1.resource_description as [资源描述信息], t1.request_mode as [请求的锁],
t1.request_session_id as [等待会话], t2.wait_duration_ms as [等待时间],
(select [text] from sys.dm_exec_requests as r with (nolock)
cross apply sys.dm_exec_sql_text(r.[sql_handle])
where r.session_id = t1.request_session_id
) as [等待会话执行的批sql],
(select substring(qt.[text],r.statement_start_offset/2,
(case when r.statement_end_offset = -1
then len(convert(nvarchar(max), qt.[text])) * 2
else r.statement_end_offset end )/2)
from sys.dm_exec_requests as r with (nolock)
cross apply sys.dm_exec_sql_text(r.[sql_handle]) as qt
where r.session_id = t1.request_session_id
) as [等待会话执行的sql],
t2.blocking_session_id as [阻塞会话],
(select [text] from sys.sysprocesses as p
cross apply sys.dm_exec_sql_text(p.[sql_handle])
where p.spid = t2.blocking_session_id
) as [阻塞会话执行的批sql]
from sys.dm_tran_locks as t1 with (nolock)
inner join sys.dm_os_waiting_tasks as t2 with (nolock)
on t1.lock_owner_address = t2.resource_address option (recompile);
select top 1000 t.hostname,
t.loginame,
percent_complete,
[session_id] ,
der.[request_id] ,
[start_time] as '开始时间' ,
der.[status] as '状态' ,
[command] as '命令' ,
dest.[text] as 'sql语句' ,
db_name([database_id]) as '数据库名' ,
[blocking_session_id] as '正在阻塞其他会话的会话id' ,
[wait_type] as '等待资源类型' ,
[wait_time] as '等待时间' ,
[wait_resource] as '等待的资源' ,
[reads] as '物理读次数' ,
[writes] as '写次数' ,
[logical_reads] as '逻辑读次数' ,
[row_count] as '返回结果行数',
t.hostname,
t.loginame
from sys.[dm_exec_requests] as der
cross apply sys.[dm_exec_sql_text](der.[sql_handle]) as dest
left join sys.sysprocesses t on t.spid=der.session_id
where [session_id] > 50
order by [cpu_time] desc
相关文章:
-
-
-
我们有一张userToken表,核心字段有id、loginId和token,主要用来记录用户的登录token,用来控制系统中一个用户能不能多次登录。我们出现死锁问题的方法是登录方法…
-
-
-
在转移数据库之前,我们首先需要备份数据库,以便在出现任何问题时能够恢复数据。这是因为文件逻辑位置做了更改,但是文件物理位置没变导致的,需要先找到该数据库在C盘下的位置,移动到D盘下…
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论