使用ctbots.com 傻瓜化一键操作-在线无损对Mybatis框架的Dao和Mapper的特定接口进行SQL观测

在Java应用中,当遇到执行缓慢的SQL而无法直接获取时,可以使用Arthas工具在线观测DAO/Mapper坐标,无需修改日志级别或应用重启。通过CtBots生成Arthas命令,观察并分析SQL,以提升性能。
摘要由CSDN通过智能技术生成

java调优中,我们遇到一种麻烦

已知某个SQL在特定的条件下,执行很慢,但是又不知道原始的SQL是什么,这里我们有几种解决方式:

  1. 直接修改mybatis的日志级别,让mybatis把相关的细节都打印出来。缺点:需要改配置重启应用,测试完还要改回去,不然日志爆炸
  2. 直接在线debug。缺点:线上环境无法debug,就算能debug,看到的也不是完整的SQL。
  3. 用arthas查看,可以在线上查看,对业务无损。缺点:输出的格式不太友好,而且很多人不知道怎么去watch。

本工具的解决的问题

不需要修改日志级别,不要调试应用,也不需要重启停止应用,只需要执行arthas对java应用进行观测,通过本工具生成的arthas的命令,对指定的DAO/Mapper的坐标进行观测。 对观测输出的结果,直接格式化为肉眼可读的方式。

操作方式

首先确定要观测的DAO/Mapper的具体坐标。

如图,入门要对指定的方法进行观测

确定最终的观测坐标是:

org.example.mid.mybatis.mapper.PersonMapper.update  【注意,方法和类之间不要有空格!!!】

登录 CtBots.com 进行分析,输入 DAO的指定坐标,点击【生成arthas语句】按钮,可以生成对应的arthas的观测语句。

在java程序的服务器上,启动arthas,输入命令进行观测【命令比较长,粘贴进去的时候,arthas显示可能有错位,但是不影响执行,直接回车即可】:

把arthas输出的结果,完整的粘贴到 ctbosts的分析框内,执行分析:

即可看到原始的执行SQL是什么。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值