EN 联系我们加入我们
典型案例
您现在的位置:首页 > 典型案例
【案例分享】Oracle数据库卡慢的优化方案



一、故障描述


客户反馈一套业务数据库经常出现卡慢,甚至输入字符也会出现延迟效果,重新启动后,数据库查询速度得到提升,但随着使用频次增加,速度再次变慢。检查所有JSP网页发现,记录集、statement和数据库连接都已被释放。


二、故障处理


在经过一系列检查均显示无异常的情况下,工程师决定生成AWR报告深度分析,进而找到了问题所在,如下图:

Oracle插图.png



看图并根据 AWR 详解分析:如果 soft parse%接近99% 而Execute to Parse %不足90%,则说明执行解析比率低, 可以通过静态SQL、动态绑定、session_cached_cursor、open_cursors等方法来减少软解析。

l  查看 session_cached_cursor 和 open_cursors,发现 session_cached_cursor值是 40,使用率为 100%,open_cursors值是 300,使用率 10%左右;

l  将  session_cached_cursor 改成 100,使用率仍为 100%,open_cursors使用率变为 35%左右,但是访问系统仍然比较慢;

l  尝试将 session_cached_cursor改成了 200,使用率达到了 93%,open_cursors使用率也达到了 65% 左右。


由此可以推断是 session_cached_cursor 参数设置不足导致了数据库卡慢,重新设置参数后,数据库的卡慢得以恢复。

之前使用 Navicat在服务器本地连数据库卡顿卡慢的问题也得到了解决。参考值为 session cursor cache hit (命中率)和 parse count (total)(解析总数),命中率越高,解析越少。


三、经验总结


工程师在日常巡检以及在每次的故障处理中,应尽量正确、全面的收集系统/数据库信息,方便遇到故障问题后进行排查,给故障处理的解决方案提供尽量多的参考。


如欲了解更多,请登录安图特官方网站:www.antute.com.cn

版权所有 安图特(北京)科技有限公司 备案号:京ICP备17074963号-1
技术支持:创世网络