问题:

最近使用quartz集群,总是报deadlock问题,所以需要查看一下执行的sql导致的加锁冲突。

步骤:

1、在要测试的库中创建指定表innodb_lock_monitor

create table innodb_lock_monitor(x int) engine=innodb;
2、执行sql
BEGIN;

SET tx_isolation='SERIALIZABLE';

SET autocommit = 0;

UPDATE QRTZ_TRIGGERS SET TRIGGER_STATE = '' WHERE SCHED_NAME = 'clusterQuartzSchedular' AND JOB_NAME = 'addRefundJob';

3、执行查询锁命令:

SHOW ENGINE INNODB STATUS;

4、得到执行结果

5、拷贝Status单元格的内容到notepad编辑器中查看详细信息:

show engine innodb status

TABLE LOCK table `pay_quartz`.`QRTZ_TRIGGERS` trx id 5E7BD8 lock mode IX
RECORD LOCKS space id 0 page no 3846 n bits 168 index `IDX_QRTZ_T_J` of table `pay_quartz`.`QRTZ_TRIGGERS` trx id 5E7BD8 lock_mode X
Record lock, heap no 18 PHYSICAL RECORD: n_fields 5; compact format; info bits 0
0: len 22; hex 636c757374657251756172747a5363686564756c6172; asc clusterQuartzSchedular;;
1: len 12; hex 616464526566756e644a6f62; asc addRefundJob;;
2: len 7; hex 44454641554c54; asc DEFAULT;;
3: len 16; hex 616464526566756e6454726967676572; asc addRefundTrigger;;
4: len 7; hex 44454641554c54; asc DEFAULT;; RECORD LOCKS space id 0 page no 2464 n bits 88 index `PRIMARY` of table `pay_quartz`.`QRTZ_TRIGGERS` trx id 5E7BD8 lock_mode X locks rec but not gap
Record lock, heap no 20 PHYSICAL RECORD: n_fields 18; compact format; info bits 0
0: len 22; hex 636c757374657251756172747a5363686564756c6172; asc clusterQuartzSchedular;;
1: len 16; hex 616464526566756e6454726967676572; asc addRefundTrigger;;
2: len 7; hex 44454641554c54; asc DEFAULT;;
3: len 6; hex 0000005e7bd8; asc ^{ ;;
4: len 7; hex 26000005b02d24; asc & -$;;
5: len 12; hex 616464526566756e644a6f62; asc addRefundJob;;
6: len 7; hex 44454641554c54; asc DEFAULT;;
7: SQL NULL;
8: len 8; hex 8000014a93f7d3a0; asc J ;;
9: len 8; hex 8000014a93f33fc0; asc J ? ;;
10: len 4; hex 80000000; asc ;;
11: len 4; hex 37383937; asc 7897;;
12: len 4; hex 43524f4e; asc CRON;;
13: len 8; hex 800001495c7369e0; asc I\si ;;
14: len 8; hex 8000000000000000; asc ;;
15: SQL NULL;
16: len 2; hex 8000; asc ;;
17: len 30; hex aced0005737200156f72672e71756172747a2e4a6f62446174614d61709f; asc sr org.quartz.JobDataMap ; (total 603 bytes); RECORD LOCKS space id 0 page no 3846 n bits 168 index `IDX_QRTZ_T_J` of table `pay_quartz`.`QRTZ_TRIGGERS` trx id 5E7BD8 lock_mode X locks gap before rec
Record lock, heap no 2 PHYSICAL RECORD: n_fields 5; compact format; info bits 0
0: len 22; hex 636c757374657251756172747a5363686564756c6172; asc clusterQuartzSchedular;;
1: len 12; hex 7061795374617475734a6f62; asc payStatusJob;;
2: len 7; hex 44454641554c54; asc DEFAULT;;
3: len 16; hex 70617953746174757354726967676572; asc payStatusTrigger;;
4: len 7; hex 44454641554c54; asc DEFAULT;;

查看sql语句加锁信息的更多相关文章

  1. sql中的系统表sysobjects以及如何查看sql语句的执行时间

    使用sysobjects可以快速查看数据库中表.视图.存储过程.触发器.约束等的信息. 大牛文章:http://www.cnblogs.com/atree/p/SQL-Server-sysobject ...

  2. 查看SQL语句执行时间与测试SQL语句性能

    查看SQL语句执行时间与测试SQL语句性能 写程序的人,往往需要分析所写的SQL语句是否够优化.是否能提升执行效率,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了 ...

  3. SQLServer 查看SQL语句的执行时间

    在MSSQL Server中通过查看SQL语句执行所用的时间,来衡量SQL语句的性能. 通过设置STATISTICS我们可以查看执行SQL时的系统情况.选项有PROFILE,IO ,TIME.介绍如下 ...

  4. MySQL查看SQL语句执行效率

    Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好 ...

  5. SQL 查看SQL语句的执行时间 直接有效的方法

    在MSSQL Server中通过查看SQL语句执行所用的时间,来衡量SQL语句的性能. 通过设置STATISTICS我们可以查看执行SQL时的系统情况.选项有PROFILE,IO ,TIME.介绍如下 ...

  6. MySQL查看SQL语句执行效率(转)

    Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好 ...

  7. SQL SERVER 查看SQL语句IO,时间,索引消耗

    1.查看SQL语句IO消耗 set statistics io on     select * from dbo.jx_order where order_time>'2011-04-12 12 ...

  8. laravel查看sql语句

    我自己是用第一种方法来调试的,第三种不行 不知道为啥 laravel查看sql语句 方法一: 我们有时候想测试一段代码生产的 SQL 语句,比如: 我们想看 App\User::all(); 产生的 ...

  9. oracle中查看sql语句的执行计划

    1.在pl/sql中打开cmd命令容器 2.在cmd命令窗口中输入:explain plan for select * from t; 3.查看sql语句的执行计划:select * from tab ...

随机推荐

  1. 【NOI】荷马史诗

    追逐影子的人,自己就是影子 ——荷马 Allison最近迷上了文学.她喜欢在一个慵懒的午后,细细地品上一杯卡布奇诺,静静地阅读她爱不释手的<荷马史诗>.但是由<奥德赛>和< ...

  2. 【BZOJ2961】共点圆(CDQ分治)

    [BZOJ2961]共点圆(CDQ分治) 题面 BZOJ 题解 设询问点\((x,y)\),圆心是\((X,Y)\) 那么如果点在园内的话就需要满足 \((X-x)^2+(Y-y)^2\le X^2+ ...

  3. 【BZOJ5252】林克卡特树(动态规划,凸优化)

    [BZOJ5252]林克卡特树(动态规划,凸优化) 题面 BZOJ(交不了) 洛谷 题解 这个东西显然是随着断开的越来越多,收益增长速度渐渐放慢. 所以可以凸优化. 考虑一个和\(k\)相关的\(dp ...

  4. 【bzoj2301】 HAOI2011—Problem b

    http://www.lydsy.com/JudgeOnline/problem.php?id=2301 (题目链接) 题意 给出${a,b,c,d,k}$,${n}$组询问,求$${\sum_{i= ...

  5. 演化理解 Android 异步加载图片(转)

    演化理解 Android 异步加载图片(转)http://www.cnblogs.com/CJzhang/archive/2011/10/20/2218474.html

  6. 解题:POI 2011 Strongbox

    首先洛谷的题面十分的劝退(至少对我这个菜鸡来说是这样),我来解释一下(原来的英文题面): 有一个有若干个密码(每个密码都可以开箱子)的密码箱,密码是在$0$到$n-1$的数中的,且所有的密码都满足一个 ...

  7. MongoDB 安装及开启关闭

    开启关闭的方式: 命令行 输入 net start mongodb 就打开mongo的服务了 输入 net stop mongodb 关闭服务 验证是否成功的方式: 在浏览器中输入 http://lo ...

  8. 字典的setdefault() 和get()方法比较

    Python 字典 setdefault() 函数 和get() 类似: 如果键存在字典中,返回其value值 如果键不存在字典中,创建键值对.完后,返回值为默认值. 话不多说,上栗子: setdef ...

  9. UIViewController的初始化

    UIViewController的初始化一般有两个: -(instancetype)init; -(instancetype)initWithNibName:(NSString *)nibNameOr ...

  10. 对硬盘进行分区时,GPT和MBR有什么区别?

    在Windows 8或8.1中设置新磁盘时,系统会询问你是想要使用MBR还是GPT分区.GPT是一种新的标准,并在逐渐取代MBR. GPT带来了很多新特性,但MBR仍然拥有最好的兼容性.GPT并不是W ...