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

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

Db file parallel read
这是一个很容易引起误导的等待事件,实际上这个等待事件和并行操作(比如并行查询,并行DML)没有关系。 这个事件发生在数据库恢复的时候,当有一些数据块需要恢复的时候,Oracle会以并行的方式把他们从数据文件中读入到内存中进行恢复操作。
这个等待事件包含三个参数:
Files: 操作需要读取的文件个数。
Blocks: 操作需要读取的数据块个数。
Requests: 操作需要执行的I/O次数。

案例分析:

11:06:16 [email protected] prod>conn scott/tiger
Connected.
11:06:19 [email protected] prod>insert into emp1 select * from emp1;
286720 rows created.
Elapsed: 00:00:02.04
11:07:22 [email protected] prod>/
573440 rows created.
11:08:07 [email protected] prod>r
  1  select event,TOTAL_WAITS,AVERAGE_WAIT from v$system_event
  2* where upper(event) like ‘DB FILE%‘
EVENT                                                            TOTAL_WAITS AVERAGE_WAIT
---------------------------------------------------------------- ----------- ------------
db file sequential read                                                 4449          .04
db file scattered read                                                  1650          .02
db file single write                                                      36          .39
db file async I/O submit                                                 133         8.69
db file parallel read                                                     37          .19
Elapsed: 00:00:00.02
11:08:20 [email protected] prod>r
  1  select event,TOTAL_WAITS,AVERAGE_WAIT from v$system_event
  2* where upper(event) like ‘DB FILE%‘
EVENT                                                            TOTAL_WAITS AVERAGE_WAIT
---------------------------------------------------------------- ----------- ------------
db file sequential read                                                 7561          .03
db file scattered read                                                  1785          .02
db file single write                                                      36          .39
db file async I/O submit                                                 160        10.29
db file parallel read                                                     39          .19
Elapsed: 00:00:00.02

Db file parallel write
这是一个后台等待事件,它同样和用户的并行操作没有关系,它是由后台进程DBWR产生的,当后台进程DBWR向磁盘上写入脏数据时,会发生这个等待。
DBWR会批量地将脏数据并行地写入到磁盘上相应的数据文件中,在这个批次作业完成之前,DBWR将出现这个等待事件。如果仅仅是这一个等待事件,对用户的操作并没有太大的影响,当伴随着出现free buffer waits等待事件时,说明此时内存中可用的空间不足,这时候会影响到用户的操作,比如影响到用户将脏数据块读入到内存中。
当出现db file parallel write等待事件时,可以通过启用操作系统的异步I/O的方式来缓解这个等待。当使用异步I/O时,DBWR不再需要一直等到所有数据块全部写入到磁盘上,它只需要等到这个数据写入到一个百分比之后,就可以继续进行后续的操作。
这个等待事件有两个参数:
Requests: 操作需要执行的I/O次数。
Timeouts: 等待的超时时间。

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

时间: 2024-08-04 10:00:46

Oracle Study之--Oracle等待事件(3)的相关文章

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

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

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

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

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

Oracle Study之--Oracle等待事件(9)  Log buffer space当log buffer 中没有可用空间来存放新产生的redo log数据时,就会发生log buffer space等待事件.如果数据库中新产生的redo log的数量大于LGWR 写入到磁盘中的redo log 数量,必须等待LGWR 完成写入磁盘的操作,LGWR必须确保redo log写到磁盘成功之后,才能在redo buffer当中重用这部分信息.如果数据库中出现大量的log buffer spac

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

什么是enqueue enqueue可以做名词,也可以做动词来解释.做名词时,指的的是一种锁的类型,比如Tx enqueue.做动词时,则是指将锁请求放入到请求队列的操作. 我们知道,lock是一种需要排队的锁实现机制,这和latch是不一样的,latch是一种轻量级的锁,是不需要排队得.Enqueue就是lock的排队机制的实现. lock是用来实现对于共享资源的并发访问的.如果两个session请求的lock是兼容的,则可以同时锁定资源,如果两个session请求的lock是不兼容的,则其中

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

Oracle Study之--Oracle等待事件(7)  Free buffer waits    当一个会话将数据块从磁盘读到内存中时,它需要到内存中找到空闲的内存空间来存放这些数据块,当内存中没有空闲的空间时,就会产生这个等待:除此之外,还有一种情况就是会话在做一致性读时,需要构造数据块在某个时刻的前映像(image),此时需要申请内存来存放这些新构造的数据块,如果内存中无法找到这样的内存块,也会发生这个等待事件.当数据库中出现比较严重的free buffer waits等待事件时,可能的

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

Oracle Study之--Oracle等待事件(8)      库缓存中的对象在库缓存中被切割成多个内存块,另有一个对象句柄记录了各个内存块的地址和其他的一些信息.当你要修改句柄中的信息时,需要在句柄上加独占锁,而如果另一个进程恰好在这时要求读.写句柄中的信息,它就必须等待.此时的等待就被Oracle记入Library cache lock事件.而读.写对象内存块也是无法同时进行的,有人如果正在写,你的读操作就必须等待,读写内存块的等待事件就是Library cache pin.如果这两个等

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

Control file parallel write当数据库中有多个控制文件的拷贝时,Oracle 需要保证信息同步地写到各个控制文件当中,这是一个并行的物理操作过程,因为称为控制文件并行写,当发生这样的操作时,就会产生control file parallel write等待事件.控制文件频繁写入的原因很多,比如:·          日志切换太过频繁,导致控制文件信息相应地需要频繁更新.·          系统I/O 出现瓶颈,导致所有I/O出现等待.当系统出现日志切换过于频繁的情形时,

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

Oracle Study之--Oracle等待事件(4) Db file scattered read这个等待事件在实际生产库中经常可以看到,这是一个用户操作引起的等待事件,当用户发出每次I/O需要读取多个数据块这样的SQL 操作时,会产生这个等待事件,最常见的两种情况是全表扫描(FTS: Full Table Scan)和索引快速扫描(IFFS: index fast full scan).这个名称中的scattered( 分散),可能会导致很多人认为它是以scattered 的方式来读取数据

Oracle Study之--Oracle 11gR2通过RMAN克隆数据库

Oracle Study之--Oracle 11gR2通过RMAN克隆数据库 Purpose of Database Duplication A duplicate database is useful for a variety of purposes, most of which involve testing. You can perform the following tasks in a duplicate database: Test backup and recovery proc