SQL死锁的分析
2018-01-10 13:25
274 查看
一、通过 SQL语句找出死锁的进程ID。
CREATE Table #Who(spid int,
ecid int,
status nvarchar(50),
loginname nvarchar(50),
hostname nvarchar(50),
blk int,
dbname nvarchar(50),
cmd nvarchar(50),
request_ID int);
CREATE Table #Lock(spid int,
dpid int,
objid int,
indld int,
[Type] nvarchar(20),
Resource nvarchar(50),
Mode nvarchar(10),
Status nvarchar(10)
);
INSERT INTO #Who
EXEC sp_who active --看哪个引起的阻塞,blk
INSERT INTO #Lock
EXEC sp_lock --看锁住了那个资源id,objid
SELECT #Who.spid,hostname,objid,[type],mode,object_name(objid) as objName FROM #Lock
JOIN #Who
ON #Who.spid=#Lock.spid
-- AND dbname=@dbname
WHERE objid<>0;二、打开活动监视器 在进程序标签中找到 对应的进程ID
三、右击查看“详细信息”可以知道是哪些 SQL 语句造成的死锁,可以右击结束过程。
四、注意事项:
1、代码中写了事务,但忘记了提交事务代码。会造成死锁。
2、在查询分析器中,招待了事务代码(包括存储过程)在代码没有完成执行中,强制结束的(等于代码中忘记写事务提交代码),需要将当前的查询页关闭。
CREATE Table #Who(spid int,
ecid int,
status nvarchar(50),
loginname nvarchar(50),
hostname nvarchar(50),
blk int,
dbname nvarchar(50),
cmd nvarchar(50),
request_ID int);
CREATE Table #Lock(spid int,
dpid int,
objid int,
indld int,
[Type] nvarchar(20),
Resource nvarchar(50),
Mode nvarchar(10),
Status nvarchar(10)
);
INSERT INTO #Who
EXEC sp_who active --看哪个引起的阻塞,blk
INSERT INTO #Lock
EXEC sp_lock --看锁住了那个资源id,objid
SELECT #Who.spid,hostname,objid,[type],mode,object_name(objid) as objName FROM #Lock
JOIN #Who
ON #Who.spid=#Lock.spid
-- AND dbname=@dbname
WHERE objid<>0;二、打开活动监视器 在进程序标签中找到 对应的进程ID
三、右击查看“详细信息”可以知道是哪些 SQL 语句造成的死锁,可以右击结束过程。
四、注意事项:
1、代码中写了事务,但忘记了提交事务代码。会造成死锁。
2、在查询分析器中,招待了事务代码(包括存储过程)在代码没有完成执行中,强制结束的(等于代码中忘记写事务提交代码),需要将当前的查询页关闭。
相关文章推荐
- MySQL死锁问题实例分析及解决方法(主要是SQL语句可能会产生的问题)
- SQL死锁分析(转)
- SQL 事件探查器 分析死锁
- SQL死锁的原因分析使用SQL Server Profiler来监视为什么会死锁
- SQL常见死锁例子及分析
- 嵌套删除SQL引起的死锁问题分析
- sql server性能分析--查询死锁和阻塞的sql语句
- sql server性能分析--查询死锁的sql语句
- SQL分析死锁并处理
- Oracle学习之sql语句执行过程分析
- 几条查看Oracle死锁的SQL
- 【转】一个 Linux 上分析死锁的简单方法
- SQL 查询分析中使用net命令问题(轉)
- 使用Log Parser将IIS日志导入SQL分析
- 通过分析SQL语句的执行计划优化SQL(总结)
- AutoTRACE是分析SQL的执行计划,执行效率的一个非常简单方便的工具
- sql 查询慢的48个原因分析
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 路由(一)分库分表配置
- SQL检测死锁
- 应用级调优分析_SQL_TRACE