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 numberP2
: The block being readP3
: 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) 索引快速全扫描: 把索引链切割成很多份,多块并行读取。