查看sql语句加锁信息
问题:
最近使用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语句加锁信息的更多相关文章
- sql中的系统表sysobjects以及如何查看sql语句的执行时间
使用sysobjects可以快速查看数据库中表.视图.存储过程.触发器.约束等的信息. 大牛文章:http://www.cnblogs.com/atree/p/SQL-Server-sysobject ...
- 查看SQL语句执行时间与测试SQL语句性能
查看SQL语句执行时间与测试SQL语句性能 写程序的人,往往需要分析所写的SQL语句是否够优化.是否能提升执行效率,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了 ...
- SQLServer 查看SQL语句的执行时间
在MSSQL Server中通过查看SQL语句执行所用的时间,来衡量SQL语句的性能. 通过设置STATISTICS我们可以查看执行SQL时的系统情况.选项有PROFILE,IO ,TIME.介绍如下 ...
- MySQL查看SQL语句执行效率
Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好 ...
- SQL 查看SQL语句的执行时间 直接有效的方法
在MSSQL Server中通过查看SQL语句执行所用的时间,来衡量SQL语句的性能. 通过设置STATISTICS我们可以查看执行SQL时的系统情况.选项有PROFILE,IO ,TIME.介绍如下 ...
- MySQL查看SQL语句执行效率(转)
Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好 ...
- SQL SERVER 查看SQL语句IO,时间,索引消耗
1.查看SQL语句IO消耗 set statistics io on select * from dbo.jx_order where order_time>'2011-04-12 12 ...
- laravel查看sql语句
我自己是用第一种方法来调试的,第三种不行 不知道为啥 laravel查看sql语句 方法一: 我们有时候想测试一段代码生产的 SQL 语句,比如: 我们想看 App\User::all(); 产生的 ...
- oracle中查看sql语句的执行计划
1.在pl/sql中打开cmd命令容器 2.在cmd命令窗口中输入:explain plan for select * from t; 3.查看sql语句的执行计划:select * from tab ...
随机推荐
- hdu 3307 简单的指数循环节
#include<stdio.h>#include<string.h>#include<algorithm>#define LL __int64using name ...
- 洛谷P4233 射命丸文的笔记 【多项式求逆】
题目链接 洛谷P4233 题解 我们只需求出总的哈密顿回路个数和总的强联通竞赛图个数 对于每条哈密顿回路,我们统计其贡献 一条哈密顿回路就是一个圆排列,有\(\frac{n!}{n}\)种,剩余边随便 ...
- 什么是 metadata (元数据)
1. 什么是元数据 任何文件系统中的数据分为数据和元数据.数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限.文件拥有者以及文件数据块的分布信息(inode...) ...
- Android系统权限和root权限
Android系统权限和root权限http://www.verydemo.com/demo_c189_i277.html
- 2018.9.21 Codeforces Round #511(Div.2)
只写了AB,甚至还WA了一次A题,暴露了蒟蒻的本质=.= 感觉考的时候有好多正确或和正解有关的思路,但是就想不出具体的解法或者想的不够深(长)(怕不是过于鶸) 话说CF的E题怎么都这么清奇=.= A. ...
- 【bzoj4264】小C找朋友
题解 $a$和$b$是好*友说明除了这两个人以外的邻接集合相同: 做两次$hash$,分别都处理和$a$相邻的点排序$hash$,①$a$要算进$a$的相邻集合,②$a$不算进: 当两个人不是好*友, ...
- tar 命令显示进度条
实现该功能需要安装 pv,然后把需要处理的数据通过管道传给 pv,最后再进行操作. 传给 pv 的目的是为了知道已经处理的数据量大小,同时需要通过 -s 指定总共需要处理的数据量大小. pv 的安装一 ...
- 在MySQL或者SQLServer中,添加对象后自动返回主键到对象模型中的配置方式
设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中.MySQL和SQLServer执行auto-generated key fiel ...
- linux下安装python和pip
注意:不要轻易去卸载原有的python环境,因为有些软件是依赖他的 一:安装前,先将依赖环境一并安装,避免后面重复编译 [root@redhat2 bin]# yum install gcc g++ ...
- 深入剖析linq的联接
内联接 代码如下 from a in new List<string[]>{ ]{"张三","男"}, ]{"李四"," ...