db file sequential read等待事件

Posted sunkang-dba

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了db file sequential read等待事件相关的知识,希望对你有一定的参考价值。

db file sequential read:直接路径读;

官方说明如下:

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.

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.

Check the following V$SESSION_WAIT parameter columns:

P1: The absolute file number
P2: The block being read
P3: The number of blocks (should be 1)


解释: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的优化方法:

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

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

以上是关于db file sequential read等待事件的主要内容,如果未能解决你的问题,请参考以下文章

记一次insert因为db file sequential read影响性能导致性能原因的分析

db file scattered read 等待事件

Oracle 等待事件之 db file scattered read

Oracle 等待事件之 db file parallel read

Oracle等待事件之db file scattered read

DB_FILE_MULTIBLOCK_READ_COUNT 与性能有关的参数