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

时间: 2024-10-27 12:43:16

Oracle 等待事件之 db file scattered read的相关文章

Oracle等待事件之db file scattered read

1.产生原因 该等待事件通常发生在数据库多块读时,表示发生了与全表扫描和快速索引扫描相关的等待.通常意味着全表扫描过多,或者I/O 能力不足,或者I/O 竞争. 2.确定产生问题对象方法 a)查找全表扫描的SQL 语句可以使用以下语句: select sql_text from v$sqltext t, v$sql_plan p where t.hash_value = p.hash_value and p.operation = 'TABLE ACCESS' and p.options = '

Oracle 等待事件之 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 resu

Oracle 等待事件之 db file parallel read

db file parallel read 官网解释: This happens during recovery. It can also happen during buffer prefetching, as an optimization (rather than performing multiple single-block reads). Database blocks that need to be changed as part of recovery are read in p

Oracle等待事件db file parallel read

SQL> select event#,name,parameter1,parameter2,parameter3 from v$event_name where name = 'db file parallel read'; EVENT# NAME PARAMETER1 PARAMETER2 PARAMETER3 ---------- ------------------------------ --------------- --------------- --------------- 12

db file scattered read 等待事件

db file scattered read 等待事件: 我们经常会见到db file scattered read  等待事件,在生产环境中,这个等待事件可能更为常见.这个事件表明用户进程正在读数据到Buffer Cache中,等待直到I/O调用返回.db file scattered read发出离散读,将存储上连续的数据块离散的读入到多个不连续的内存位置.Scattered Read通常是多块读,在Full Table Scan或Fast Full Scan等访问方式下使用.Scatter

Oracle Study之--Oracle等待事件(5)

Oracle Study之--Oracle等待事件(5)  Db file single write这个等待事件通常只发生在一种情况下,就是Oracle 更新数据文件头信息时(比如发生Checkpoint).当这个等待事件很明显时,需要考虑是不是数据库中的数据文件数量太大,导致Oracle 需要花较长的时间来做所有文件头的更新操作(checkpoint).这个等待事件有三个参数:File#: 需要更新的数据块所在的数据文件的文件号.Block#: 需要更新的数据块号.Blocks: 需要更新的数

oracle等待事件的相关知识

一. 等待事件的相关知识: 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件. 1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件. 2). 非空闲等待事件专门针对ORACLE的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是在调整数据库的时候需要关注与研究的. 在Oracle 10g中的等待事件有872个,11g中等待事件1116个. 我们可以通过v$event_name 视图来查看等待

一.1.1 db file scattered read(数据文件离散读)

在V$SESSION_WAIT这个视图里面,这个等待事件有三个参数P1.P2.P3,其中P1代表Oracle要读取的文件的绝对文件号,P2代表Oracle从这个文件中开始读取的BLOCK号,P3代表Oracle从这个文件开始读取的BLOCK号后读取的BLOCK数量. SELECT * FROM   v$event_name WHERE  NAME IN ('db file sequential read', 'db file scattered read');   从V$EVENT_NAME视图

oracle等待事件以及解决方案

我们可以通过视图v$session_wait来查看系统当前的等待事件,以及与等待事件相对应的资源的相关信息,从而可确定出产生瓶颈的类型及其对象. v$session_wait的p1.p2.p3告诉我们等待事件的具体含义,根据事件不同其内容也不相同,下面就一些常见的等待事件如何处理以及如何定位热点对象和阻塞会话作一些介绍. <1> db file scattered read DB 文件分散读取 (太多索引读,全表扫描-----调整代码,将小表放入内存)这种情况通常显示与全表扫描相关的等待.当全