查看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 ...
随机推荐
- 【NOI 2018】归程(Kruskal重构树)
题面在这里就不放了. 同步赛在做这个题的时候,心里有点纠结,很容易想到离线的做法,将边和询问一起按水位线排序,模拟水位下降,维护当前的各个联通块中距离$1$最近的距离,每次遇到询问时输出所在联通块的信 ...
- 【uoj33】 UR #2—树上GCD
http://uoj.ac/problem/33 (题目链接) 题意 给出一棵${n}$个节点的有根树,${f_{u,v}=gcd(dis(u,lca(u,v)),dis(v,lca(u,v)))}$ ...
- java多线程 -- ForkJoinPool 分支/ 合并框架 工作窃取
Fork/Join 框架:就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个的小任务运算的结果进行 join 汇总. Fork/Join 框架与线程池的 ...
- Activity的setResult方法
Activity的setResult方法http://blog.csdn.net/dinglin_87/article/details/8970144 调用setResult()方法必须在finish ...
- 【Asp.net入门5-03】创建产品清单
- Azure 上SQL Database(PaaS)Time Zone时区问题处理(进阶篇)
通常ISV在面对本地客户时对时间相关的处理,一般都时区信息都是不敏感的.但是现在云的世界里为了让大家把时间处理的方式统一起来,云上的服务都是以UTC时间为准的,现在如果作为一个ISV来说就算你面对的客 ...
- Docker图形界面管理之Portainer
介绍 Portainer是一个开源.轻量级Docker管理用户界面,基于Docker API,可管理Docker主机或Swarm集群,支持最新版Docker和Swarm模式.官方文档 https:// ...
- 自动化工具制作PASCAL VOC 数据集
自动化工具制作PASCAL VOC 数据集 1. VOC的格式 VOC主要有三个重要的文件夹:Annotations.ImageSets和JPEGImages JPEGImages 文件夹 该文件 ...
- C++函数不能为virtual的场景
1.类函数不能同时被static和virtual修饰. 2.类的模板函数不能被virtual修饰 未完待续
- php 中 FastCGI与cgi的关系,何为fastcgi
FastCGI是语言无关的.可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持 在内存中并因此获得较高的性能.众所周知,CGI解释器的反复加载是CGI性能低下的主要原因, 如果CGI解释器 ...