Oracle 等待事件之 db file scattered read

Posted

tags:

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

db file scattered read

官网解释:

This event signifies that the user process is reading buffers into the SGA buffer cache and is waiting for a physical I/O call to return. A db file scattered read issues a scattered read to read the data into multiple discontinuous memory locations. A scattered read is usually a multiblock read. It can occur for a fast full scan (of an index) in addition to a full table scan.

The db file scattered read wait event identifies that a full scan is occurring. When performing a full scan into the buffer cache, the blocks read are read into memory locations that are not physically adjacent to each other. Such reads are called scattered read calls, because the blocks are scattered throughout memory. This is why the corresponding wait event is called ‘db file scattered read‘. multiblock (up to DB_FILE_MULTIBLOCK_READ_COUNT blocks) reads due to full scans into the buffer cache show up as waits for ‘db file scattered 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 greater than 1)


on a healthy system, physical read waits should be the biggest waits after the idle waits. However, also consider whether there are direct read waits (signifying full table scans with parallel query) or db file scattered read waits on an operational (OLTP) system that should be doing small indexed accesses.


Other things that could indicate excessive I/O load on the system include the following:

  • Poor buffer cache hit ratio

  • These wait events accruing most of the wait time for a user experiencing poor response time

解释:db file scattered read 等待事件:是由于多数据块读操作产生的,当我们检索数据时从磁盘上读取数据到内存中,一次I/0读取多个数据块,而数据块在内存中是分散分布并不是连续的,当数据块读取到内存中的这个过程就会产生“db file scattered read” 事件。

    多个数据块读场景:

       (1) FTS(Full Table Scans) 全表扫描

       (2) IFFS(Index Fast Full Scans) 索引快速全扫描: 把索引链切割成很多份,多块并行读取。

本文出自 “Linux Oracle MariaDB” 博客,请务必保留此出处http://wangergui.blog.51cto.com/8504247/1912796

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

Oracle 等待事件之 db file parallel read

Oracle等待事件之db file scattered read

Oracle db file parallel write 和 log file parallel write 等待事件

oracle启用异步IO(db file async I/O submit)

oracle之 等待事件LOG FILE SYNC (awr)优化

Oracle之 等待事件log file sync + log file parallel write (awr优化)