db file sequential read等待事件

db file sequential read:直接路径读;

官方说明如下:

db file sequential read等待事件
1 This event signifies that the user process is reading a buffer into the SGA buffer cache and is waiting for a physical I/O call to return. A sequential read is a single-block read.
2 
3 Single block I/Os are usually the result of using indexes. Rarely, full table scan calls could get truncated to a single block call because of extent boundaries, or buffers present in the buffer cache. These waits would also show up as db file sequential read.
4 
5 Check the following V$SESSION_WAIT parameter columns:
6 
7 P1: The absolute file number
8 P2: The block being read
9 P3: The number of blocks (should be 1)
db file sequential read等待事件

 


解释:ORACLE进程需要访问block不能从SGA中获取的时候,因此oracle进程会等待block从I/O读取到SGA;

一个顺序读是一个单块读,单块I/O一般来自索引读的结果;

db file sequential read等待事件有3个参数:
P1: The absolute file number 文件号
P2: The block being read first block#
P3: The number of blocks (should be 1) block数量

db file sequential read等待时间是由于执行对索引,回滚(undo)段,和表(当借助rowid来访问),控制文件和数据文件头的单块读操作SQL语句(用户和递归)引起的。对于这些对象的物理I/O请求是很正常的,因此db file sequential read等待的存在不是一定意味库或应用出错了。如果会话在这事件上花了好长事件,它可能也不是一个糟糕的事情。相反,如果会话花了大量时间在equeue或latch free上,那么一定是有问题。

db file sequential read等待事件有3个参数:file#,first block#,和block数量。在10g中,这等待事件受到用户I/O等待级别的影响。当处理db file sequential read等待事件的时候,牢记以下关键想法。

Oracle进程需要一个当前不在SGA中的块,等待数据库块从磁盘读入到SGA中
要看的两个重要的数字是单独会话的TIME_WAITED和AVERAGE_WAIT。
重要db file sequential read等待时间最可能是一个应用问题。


AWR报告中的系统的等待事件中的db file sequential read是否合理?
第一个重要参数

db file sequential read等待事件

db file sequential read的优化方法:

从读取开始,增加SGA中buffer cache的大小,避免每次都从硬盘中去读数;
优化sql语句,减少不必要的块读取;
你能做两件事来最小化db file sequential read事件:

通过降低physical和logical read来优化导致大多数wait的SQL语句
降低平均等待时间

 

db file sequential read等待事件

上一篇:Oracle 解决存储过程包中,kill session的权限问题


下一篇:postgreSQL使用sql归一化数据表的某列,以及出现“字段 ‘xxx’ 必须出现在 GROUP BY 子句中或者在聚合函数中”错误的可能原因之一