Sqlserver 死锁查询以及批量解锁方法

一、Sqlserver 死锁查询以及解锁方法

(1)下面是查询死锁进程

select 
request_session_id spid,                              (死锁进程id)
OBJECT_NAME(resource_associated_entity_id) tableName  (死锁进程名称)
from sys.dm_tran_locks 
where resource_type='OBJECT'                          (数据类型所有)

(2)杀死死锁进程

declare @spid int                                      //声明id
Set     @spid = 62                                     //设置死锁id
declare @sql varchar(1000)                             //声明sql 
set     @sql='kill '+cast(@spid as varchar)            //设置 kill掉死锁进程
exec    (@sql)                                         //执行

或者
kill 62;

sqlserver 批量kill死锁
select 'kill '+CONVERT(varchar,request_session_id) ,OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks
where
   resource_type='OBJECT'
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SQL Server 中,可以通过以下步骤来检测和解决死锁: 1. 打开 SQL Server Management Studio,连接到目标数据库。 2. 在“工具”菜单中选择“SQL Server Profiler”。 3. 在“模板”中选择“标准”或“TSQL_Duration”。 4. 在“事件选择”选项卡中选择“Locks”和“Deadlock Graph”事件。 5. 在“事件过滤器”选项卡中,根据需要设置过滤器,以限制要监视的事件类型和对象。 6. 单击“运行”按钮开始监视。 7. 如果发生死锁,Profiler 将捕获并显示死锁图形。 8. 根据死锁图形中的信息,确定哪些 SQL 语句造成了死锁,然后对这些语句进行优化或重构。 9. 可以使用 SQL Server 提供的其他工具,如“活动监视器”和“系统动态管理视图”,来进一步分析和解决死锁问题。 除了以上提到的方法,还可以通过查询系统动态管理视图来检测死锁: SELECT db.name AS dbname, TL.resource_type AS restype, TL.resource_database_id AS dbid, TL.resource_associated_entity_id AS resid, TL.request_mode AS reqmode, TL.request_session_id AS sid, WT.blocking_session_id AS blockingid, H.TEXT AS sqltext FROM sys.dm_tran_locks AS TL INNER JOIN sys.databases AS db ON db.database_id = TL.resource_database_id INNER JOIN sys.dm_os_waiting_tasks AS WT ON TL.lock_owner_address = WT.resource_address INNER JOIN sys.dm_exec_sessions AS S ON WT.session_id = S.session_id CROSS APPLY sys.dm_exec_sql_text(WT.sql_handle) AS H WHERE TL.request_session_id = @@SPID AND TL.resource_type <> 'DATABASE' AND WT.blocking_session_id <> 0; 以上查询可用于检测当前会话中是否有死锁,并显示死锁所涉及的数据库、资源类型、请求模式、会话 ID、阻塞会话 ID 和 SQL 文本等信息。根据这些信息,可以进一步分析和解决死锁问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿杰同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值