暂无图片
暂无图片
10
暂无图片
暂无图片
暂无图片

Oracle数据库性能分析案例一则

原创 飞天 2025-01-14
861

今天一朋友说oracle11g生产库突然性能变得很差,已经把核心业务都停了,协助一起分析下数据库问题到底在哪,来吧!

分析思路如下:

了解最近变化情况

先了解最近有没有业务上线之类的变更,有没有硬件之类的调整,系统日志有没有报错,数据量是否有明显的变化,sql执行计划是否有偏差…
经沟通得知,主机存储磁盘前几天发生过故障,已经换好了新盘。

查看awr报告

说明:只有现在性能比较低的awr报告,没有性能正常时的awr报告,因此也无法对比分析。

查看数据库整体负载

image.png
服务器配置还可以,数据库整体负载不高。

查看top5前端等待事件

image.png
都是io类相关的等待。

查看SQL Statistics信息

SQL ordered by Elapsed Time

image.png
可以看到这些sql执行很耗时,而且时间主要花费在io上。

SQL ordered by User I/O Wait Time
image.png

根据 User I/O 等待时间排序的SQL,可以看到这些SQL都花费在io上。

查看Tablespace IO Stats

image.png
表空间的平均读达到了862.91ms,太高了吧!

查看File IO Stats

image.png

两个数据文件的平均读分别为361.79ms、476.52ms,太高了吧!

初步结论

应该是新换的盘有问题,需要检查新盘是否存在问题,测试读写性能、兼容性、多路径配置等。

最终处理

主机工程师确认新盘确实有问题,修复了磁盘,数据库性能恢复正常。
正常的awr报告如下:
image.png

查看Top 5 Timed Foreground Events

image.png

查看 SQL ordered by Elapsed Time

image.png
sql执行时间下降了很多,恢复了正常。

查看SQL ordered by Reads

image.png
和异常时间的报告相比,%io下降了很多。

查看Tablespace IO Stats

image.png

查看File IO Stats

image.png

表空间和数据文件的io平均读都恢复了正常。
至此,这个案例也就分析完成了,原因是数据盘有问题。

进一步优化建议

1、优化sql语句,减少全表扫描,降低物理读、逻辑读
2、有热表,考虑打散数据
3、内存使用率不高,调整内存参数,取消amm配置。

越分享越快乐,希望你我都学有所获,共同进步~~~

关于作者:
专注于Oracle、MySQL、PG、OpenGauss和国产数据库的研究,热爱生活,热衷于分享数据库技术。
微信公众号:飞天online
墨天轮:https://www.modb.pro/u/15197
如有任何疑问,欢迎大家留言,共同探讨~~~

最后修改时间:2025-01-15 07:57:01
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论