Oracle等待事件之db file sequential read/ db file parallel read
1、产生原因
db file sequential read这个是非常常见的I/O 相关的等待事件。表示发生了与索引扫描相关的等待。意味着I/O 出现了问题,通常表示I/O竞争或者I/O 需求太多。
db file parallel read这个事件表明会话正在并行执行多个读取的需求。
2、确定产生问题原因的对象
awr报告“SQL ordered by Reads”、v$sql视图中i/o较多的sql。
3、解决办法
(1)块读取通常是不可避免的,但可以通过最小化不必要的IO 以避免不必要的块读取。
(2)检查使用了不合适的索引扫描的SQL,优化SQL 语句。
(3)可能的话,加大SGA 中的数据库缓存池以缓冲更多的数据库表块和索引块。
(4)重新组织数据库表,比如使用export、import、数据泵或者CTAS 以使表有更好的聚集。
(5)通过awr报告中的“File I/O Statistics”部分或者v$filestat 视图找出热点的磁盘将读取较频繁的数据文件分散到不同的磁盘以均衡io。
(6)可以考虑rebuild索引。
(7)判断表是否适合分区以减少需要查询的数据块总数。
分类:
Oracle
标签:
Oracle性能优化
, 原创文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了