文章详情页
Sqlserver之死锁查询以及批量解锁的实现方法
目录Sqlserver死锁查询以及批量解锁方法Sqlserver死锁查询以及解锁方法sqlserver 批量kill死锁解决sqlserver死锁问题创造死锁解决方法总结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 //声明idSet @spid = 62 //设置死锁iddeclare @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_lockswhere resource_type='OBJECT'解决sqlserver死锁问题创造死锁-- 开始事务BEGIN TRANSACTION update job set create_user='0000' where WAITFOR DELAY '02:00'-- 执行查询select * from job where id = '1';解决方法方法一
打开sqlserver管理工具,新建sql查询tab执行select * from master.sys.sysprocesses where dbid=db_id(‘数据库名’)然后会查询到具体有哪个在连接到此数据库直接KILL spid的具体数值就可以了方法二
-- 首先查询select request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT' -- 然后执行 kill 67;注意事项:
有些用户连接可以在kill掉后自动重建,但期间有一段时间,如果碰到这种情况,需要在执行完kill命令后立即执行脱机操作
总结以上为个人经验,希望能给大家一个参考,也希望大家多多支持好吧啦网。
排行榜