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

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

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

案例分析:

11:06:16 SYS@ prod>conn scott/tiger
Connected.
11:06:19 SCOTT@ prod>insert into emp1 select * from emp1;
286720 rows created.
Elapsed: 00:00:02.04
11:07:22 SCOTT@ prod>/
573440 rows created.
11:08:07 SYS@ 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 SYS@ 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: 等待的超时时间。

本文出自 “天涯客的blog” 博客,请务必保留此出处http://tiany.blog.51cto.com/513694/1535849

Oracle Study之--Oracle等待事件(3),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。