SQL Server '已超过了锁请求超时时段' 问题解决方法

SQL 有时遇到

已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)

这个错误,刷新以后,右击某张表或者库,发现里面的表全部消失了 或者查询不到。
这是因为 sql进程死锁,资源被抢占,要解决这个问题,得杀死关闭 死锁的进程,下面介绍解决方案:


杀死进程的前提是找到 那个死锁的进程 ,

SELECT blocking_session_id '阻塞进程的ID', wait_duration_ms '等待时间(毫秒)', session_id '(会话ID)' FROM sys.dm_os_waiting_tasks

这句sql就可以查询到当前阻塞进程的ID
下面只要杀死这些进程就可以了

kill spid(进程ID) 或者 exec(‘kill’ ‘spid’)
这样就可以了 重新刷新下 库 一切正常了

顺便介绍下相关内容的另外两个sql:

--查询当前活动的锁管理器资源的信息  
SELECT resource_type '资源类型',request_mode '请求模式',request_type '请求类型',request_status '请求状态',request_session_id '会话ID' FROM sys.dm_tran_locks
--查询数据库进程(where 筛选库)
select spId  from master..SysProcesses
where db_Name(dbID) = 'text' and spId <> @@SpId and dbID <> 0
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值