暂无图片
如何通过系统表,把执行超过10分钟但是还没有执行完的语句给查到?5.7社区版下
我来答
分享
暂无图片 匿名用户
如何通过系统表,把执行超过10分钟但是还没有执行完的语句给查到?5.7社区版下

如何通过系统表,把执行超过10分钟但是还没有执行完的语句给查到?

5.7社区版下

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
怪力乱神

1、参考performance_schema.events_statements_current表和performance_schema.events_statements_history_long

ps:5.7中performance_schema默认是关闭的,SHOW VARIABLES LIKE 'performance_schema';,只能在配置文件开启不能在线启用;

TIMER_START语句开始时间:单位皮秒(ps),(当前时间-数据库启动时间) * 1000000000000 ps

TIMER_END语句开始时间:单位皮秒(ps),(当前时间-数据库启动时间) * 1000000000000 ps

TIMER_WAIT语句等待时间:单位皮秒(ps),TIMER_END - TIMER_START

LOCK_TIME锁等待时间:单位皮秒(ps),等待表锁的时间


2、select * from information_schema.PROCESSLIST;

time是显示这个状态持续的时间,单位是秒;太长的SQL或者是执行完的SQL都是显示不了的


3、如果没有强制要求是系统表的话,一般会采用开启慢SQL进行记录,在文件中查看。

暂无图片 评论
暂无图片 有用 2
Xiang
select * from information_schema.processlist where COMMAND = 'Query' and TIME > (10*60) ;
暂无图片 评论
暂无图片 有用 0
D
duguwo

select * from information_schema.innodb_trx 查看长时间执行事务,可以根据事务启动时间来判断执行时长

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏