解决sqlserver死锁问题
创造死锁-- 开始事务BEGIN TRANSACTIONupdate job set create_user='0000' where id = '1'WAITFOR DELAY '02:00'-- 执行查询select * from job where id = '1';方法一打开sqlserver管理工具,新建sql查询tab执行select * from master.sys.sysproc
·
创造死锁
-- 开始事务
BEGIN TRANSACTION
update job set create_user='0000' where id = '1'
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命令后立即执行脱机操作
更多推荐
已为社区贡献1条内容
所有评论(0)