查看: 82|回复: 0

sqlserver 查询死锁的几种办法

[复制链接]

4

主题

6

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2023-2-10 13:29:19 | 显示全部楼层 |阅读模式
sp_who2 系统存储过程

sp_who2 提供有关当前 SQL Server 进程以及关联用户、应用程序、数据库、CPU 时间等的信息。可以使用“active”参数过滤存储过程以仅返回活动进程。
exec sp_who2


sp_who2 显示进程 33 被进程 171 阻止

sys.dm_os_waiting_tasks DMV

sys.dm_os_waiting_tasks DMV 返回有关正在等待资源的任务的信息。要查看数据,用户应对实例具有 SQL Server 系统管理员或 VIEW SERVER STATE 权限。
select session_id,wait_duration_ms,wait_type,blocking_session_id
from  sys.dm_os_waiting_tasks
WHERE blocking_session_id <> 0


sys.dm_exec_requests

sys.dm_exec_requests DMV 提供了有关在 SQL Server 中运行的所有进程的详细信息。使用下面列出的 sql语句,将返回阻塞的进程。
select * from  sys.dm_exec_requests
WHERE blocking_session_id <> 0;


通过下面的语句可以查看当前库中有哪些表是发生死锁

SELECT request_session_id
spid,OBJECT_NAME(resource_associated_entity_id)tableName
FROM
sys.dm_tran_locks
WHERE resource_type='OBJECT '


有帮助的小伙伴记得点个赞哦~.~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表