Oracle常见等待事件概览

1.buffer busy waits:多个进程视图以不兼容的模式获取buffer pin时。

原因:热块,多个会话频繁的读取或修改同样的数据块

2.cbc latch:数据块在sga中的地址存放在一个hash链表中,该内存结构由一系列的cbc latch保护,对buffer cache中的块,要select,delete,update,都得先获得cbc latch,以保证对hash chain的排他访问。如在此过程中发生争用,就会产生cache buffer chains等待事件。

原因:a.逻辑读过高的sql,latch争用 b.热块

3.control file parallel write:同步写信息到各个控制文件中,是一个并行的物理操作过程。

原因:a. 导致写控制文件的操作,日志切换太过频繁。可以通过增加日志文件大小来降低切换频率。

           b. IO,将控制文件放到不同磁盘以较少IO争用,或减少控制文件的拷贝数量

4.control file sequencial read:需要读取控制文件的信息时。

原因:a. rac环境下控制文件共享

5.dbfile parallel read:数据块批量从数据文件并行读取到中时,常见于数据库恢复和缓存预读取。

6.db file parallel write:DBWR将脏块从buffer cache写到数据文件中。可以通过操作系统的异步IO来缓解,使用异步IO时,DBWR不需要扥到所有的脏块都写到数据文件就可以开始接下里的工作。

7. db file scatterd read:一次IO读取多个数据块,常见于全表扫描(full table scan),索引快速完全扫描(index fast full scan)。

IFFS:和索引完全扫描一样,需要读取目标索引所有子叶块的所有行。有以下特点:

a. 只适用于CBO

b. 可以使用多块读,也可以并行执行

c. 不一定是有序的

8. dbfile sequencial read:一次IO读取一次数据块,索引访问,row方式访问,回滚,dump,重建控制文件。

9. db file single write:数据文件头更新时,如checkpoint操作,考虑是否数据库的文件数量过大。

10.direct path read:数据块直接从数据文件读取到pga中,不经过SGA。通常是会话私有的数据,多是临时段上的数据,比如sql的排序数据,hash join,merge join产生的数据。当有这个等待事件发生时,意味着数据库上有大量临时数据产生,比如排序,并行执行等操作,或意味着pga的空闲空间不足。

11.direct path write:数据块直接从pga写入到数据文件中,多发生在:a.使用临时表空间中的数据(pga内存不足) b.直接路径加载(append) c.并行DML操作

12.free buffer waits:buffer cache空间不足,数据块从数据文件写入到buffer cach,或一致性读需要构造CR(consistent read)块。意味着buffer cache空间不足或脏数据过多。

13. librarycache lock:当会话需要访问library cache中的object时,需要先获得指向这个对象的handel的lock,获得这个Lock之后再获取pin住指向这个object的heap。

比如当一个会话对数据库对象进行DDL操作时,就会阻塞其他会话的DML访问。

14.library cache pin:当对包,视图,函数,存储过程进行编译时,oracle会在这些对象的handel上面首先获取一个library cache lock,然后在这些对象的heap上获取一个library cache pin,以保证这些对象在编译时不会被更改或删除

15.log file parallel write:LGWR将log buffer当中的数据写入到log file。一般是由于磁盘IO性能不够或log file的分布导致。可以考虑将log file放到不同的磁盘。

16.log buffer space:log buffer空间不足,说明数据库的事务较多,产生日志的速度大于写入磁盘的速度,可以增加log buffer的大小,提高磁盘的IO性能。

17.logfile sequencial read:读取日志文件信息的时候,归档操作。

18.log file single write:更新日志文件头信息,如添加日志文件或更改日志序列号时。

19.log file switch:archived need,归档未完成,可能是arch进程死掉导致归档失败。

20.log file switch:checkpoint incomplete,日志文件对应的脏块未写入数据文件。日志文件太小或日志组太少。

21.log file sync:commit到redo写入日志文件。一般为频繁的提交或IO导致。

22.sql*net break/reset to client:服务器端给客户端发送一个断开、重置连接的请求,正在等待客户端的相应。通常是客户端到服务端网络不稳造成。

23.sql*net message from client:会话建立成功后,客户端会向服务器端发送请求,服务器端处理完客户端请求后,将结果返回给客户端,继续等待。

24.sql*net message to client:服务器端向客户端发送消息产生等待时。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值