ITPub博客

首页 > 数据库 > Oracle > db file sequential read等待事件

db file sequential read等待事件

原创 Oracle 作者:DBA_每日记 时间:2019-12-06 11:38:44 0 删除 编辑

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语句

降低平均等待时间


来自 “ ITPUB博客 ” ,链接:/69950231/viewspace-2667236/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-10-09

  • 博文量
    110
  • 访问量
    47868