查看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 ...
随机推荐
- 【转】Word 2010 取消拼写/语法检查,隐藏红线/绿线
转自:http://blog.chinaunix.net/uid-8203698-id-3040631.html 设置方法如下,在Word菜单栏-->文件-->选项-->校对,其中“ ...
- MT【152】不患寡而患不均
((清华2017.4.29标准学术能力测试1) $a_1,a_2,\cdots,a_9$ 是数字$1$到$9$ 的一个排列,则 $a_1a_2a_3+a_4a_5a_6+a_7a_8a_9$ 的最小值 ...
- Linux系统启动详解(三)
上节已系统initramfs已启动完成,将系统控制权交给了真正的rootfs的/sbin/init,下面就是/sbin/init干活的时间了. 4 /sbin/init initramfs ...
- 一次lvs迁移记录
需求:从117.119.33.99迁移到122.14.206.125,lvs为dr模式,系统版本为debian7 1.安装lvs和keepalived # aptitude install -y ip ...
- netbeans工具使用xdebug断点调试php源码
对有有经验的程序员,使用echo.print_r().print_f().var_dump()等函数足以调试php代码,如果需要在IDE工具中使用断点调试,xdebug就是一个非常好的php调试工具. ...
- 如何在 Android 程序中禁止屏幕旋转和重启Activity
禁止屏幕随手机旋转变化 有时候我们希望让一个程序的界面始终保持在一个方向,不随手机方向旋转而变化:在AndroidManifest.xml的每一个需要禁止转向的Activity配置中加入android ...
- .NET MVC 获取 当前请求的 控制器/视图/区域 的名字
.NET MVC 在action中或过滤器中或视图中,分别如何获取 当前请求的 控制器/视图/区域 的名字 1)过滤器中的: public class CMSAttribute : Filter ...
- C++ strcat(template版本)
template<unsigned N, unsigned M> inline std::shared_ptr<char> strcat(const char (&p1 ...
- Qt 状态栏设置
版权声明 该文章原创于Qter开源社区(www.qter.org),作者yafeilinux,转载请注明出处! 导语 在程序主窗口QMainWindow中,主要包含菜单栏,工具栏,中心部件和状 ...
- winscp以命令行方式同步服务器数据到PC机磁盘上
目前服务器上每日会产生备份文件,需要使用winscp工具把备份同步到本地PC机硬盘上.平时都是图形界面用鼠标点击方式来同步的,效率低下,因此编写了winscp自动同步脚本,并加入到计划任务中定时自动运 ...