Oracle CPU内存飙升达到90%以上

在开发测试中,对接口进行压力测试,通过监控手段发现数据库的cpu使用率在90%以上,使用jmeter仅仅用了50个并发就这样。

系统是老项目,使用的struts,jdbc

分析1:接口中的持久层代码,一个一个的排查,单独拿出来查看执行计划,发现所有的sql都走了索引,不存在全表扫描的情况。

分析2:sql里面有的带有select * ,将*改成需要的字段,结果发现并没有很高的改善。

分析3:注代码,把sql一个一个的注掉,看是哪个sql的问题

终于,发现了,这里使用的是IN语法,我们自己写了个方法,对IN语法进行了截取,所以使用IN语法的时候是不会使用问号(?)进行预编译的,导致了在执行sql的时候,数据库每次都要去编译一次。最后把这里改了,数据库的CPU使用率就下降到15%以内了。

唉,记录一下。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值