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