在java调优中,我们遇到一种麻烦
已知某个SQL在特定的条件下,执行很慢,但是又不知道原始的SQL是什么,这里我们有几种解决方式:
- 直接修改mybatis的日志级别,让mybatis把相关的细节都打印出来。缺点:需要改配置重启应用,测试完还要改回去,不然日志爆炸。
- 直接在线debug。缺点:线上环境无法debug,就算能debug,看到的也不是完整的SQL。
- 用arthas查看,可以在线上查看,对业务无损。缺点:输出的格式不太友好,而且很多人不知道怎么去watch。
本工具的解决的问题
不需要修改日志级别,不要调试应用,也不需要重启停止应用,只需要执行arthas对java应用进行观测,通过本工具生成的arthas的命令,对指定的DAO/Mapper的坐标进行观测。 对观测输出的结果,直接格式化为肉眼可读的方式。
操作方式
首先确定要观测的DAO/Mapper的具体坐标。
如图,入门要对指定的方法进行观测

在Java应用中,当遇到执行缓慢的SQL而无法直接获取时,可以使用Arthas工具在线观测DAO/Mapper坐标,无需修改日志级别或应用重启。通过CtBots生成Arthas命令,观察并分析SQL,以提升性能。
最低0.47元/天 解锁文章





