Oracle IO架构

等待事件从Oracle 7.0提出,真是一个伟大的想法,从此数据库对我们来说不是一个黑盒。
db file sequential read 数据文件单块读,指的是从数据文件获取一个单块的信息。最能让人想到的是索引回表,当然全表扫描也可能产生单块读,因为不是所有的全表扫描都能多块读。

db file scattered read 多块读,最大块数由db_file_multiblock_read_count定义,此参数通常与操作系统IO大小一致,操作系统IO一般是512K或1MB。

direct path read 直接路径读,是指数据不加载到数据缓冲区(SGA的一块区域),直接加载到PGA。db file sequential read和db file scattered read都是先将数据加载到数据缓存区。直接路径读避免了数据缓存区管理的开销和争用(这是它存在的原因),但读取的数据不能被其他的进程使用,换言之,其他进程碰巧需要相同的块,需要从磁盘重新读取。一下场景会使用直接路径读:
执行临时段IO时总是使用直接路径读;并行查询时。
直接路径读可以是单块读也可以是多块读,执行有索引的单块读时,Oracle偏好缓存IO,因为块很可能会被重用。通常直接路径路径读更常用多块读。

direct path read/write temp,当PGA没有足够的内存时,就会用到临时段。

db file parallel write,DBWR IO被登记为此事件。DML操作默认情况下会修改数据缓存区的数据库,等待检查点到来将脏块写入到磁盘。

direct path write,直接路径写,数据从PGA直接插入到数据文件,不经过数据缓存区。用append或者并行。

log file parallel write,大部分重做日志会被注册为此事件。当重做日志初始化一个日志文件,会登记log file single write和 log file sequential read.重做日志记录刷到磁盘时,会有log file sync,这是一个重要指标,通常平均时间超过20ms,应用系统就会有严重问题了。

log archive I/O 归档日志写被登记为此事件。归档进程读取非活动的重做日志并写入到归档日志,重做日志读登记为log file sequential read.

flashback log file writes,当恢复写进程写入闪回日志,会登记为此事件。

control file parallel write,control file sequential read,控制文件IO登记的等待事件。

相关文章

数据库版本:11.2.0.4 RAC(1)问题现象从EM里面可以看到,在23号早上8:45~8:55时,数据库等待会话暴增...
(一)问题背景最近在对一个大约200万行数据的表查看执行计划时,发现存在异常,理论上应该返回100多万...
(一)删除备份--DELETE命令用于删除RMAN备份记录及相应的物理文件。当使用RMAN执行备份操作时,会在RM...
(1)DRA介绍 数据恢复顾问(Data Recovery Advise)是一个诊断和修复数据库的工具,DRA能够修复数据文...
RMAN(Recovery Manager)是Oracle恢复管理器的简称,是集数据库备份(backup)、修复(restore)和恢复...
(1)备份对象 可以使用RMAN进行的备份对象如下: --整个数据库:备份所有的数据文件和控制文件; --数...