度量快速开发平台-专业、快速的软件定制快开平台

标题: SqlServer表死锁的解决方法 [打印本页]

作者: 万望    时间: 2020-4-5 23:59
标题: SqlServer表死锁的解决方法
前几天发了一篇检测死锁现象的帖子详解Sqlserver死锁检测的方法
,今天为大家带来解锁方法,下面用一个简单示例讲解:
1 首先创建一个测试用的表:

  1. CREATE TABLE Test
  2. (
  3. TID INT IDENTITY(1,1)
  4. )
复制代码
2 执行下面的SQL语句将此表锁住:
  1. SELECT * FROM Test WITH (TABLOCKX)
复制代码
3 通过下面的语句可以查看当前库中有哪些表是发生死锁的:
  1. SELECT request_session_id spid,OBJECT_NAME(resource_associated_entity_id)tableName
  2. FROM sys.dm_tran_locks
  3. WHERE resource_type='OBJECT '
复制代码
4 上面语句执行结果如下:

spid :被锁进程ID。
tableName:发生死锁的表名。

5 只需要使用kill关键字来杀掉被锁的进程ID就可以对表进行解锁:

KILL 52

作者: 万望    时间: 2020-4-6 00:03
这是SqlServer数据库的死锁处理方式哈,oracle的死锁处理逻辑一样,只是sql语句会有一定差异
作者: 万望    时间: 2020-4-6 00:04

作者: 陈晓龙    时间: 2020-4-6 17:02
万望 发表于 2016-5-6 00:04

好萌呀望望!




欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://bbs.delit.cn/) Powered by Discuz! X3.2