ITPub博客

首页 > 数据库 > Oracle > ORACLE中的等待事件

ORACLE中的等待事件

原创 Oracle 作者:empo007 时间:2007-01-07 12:56:40 0 删除 编辑
非空闲等待事件的含义[@more@]Buffer busy wait 表示在等待对数据告诉缓存区的访问,这种等待出现在会话读取数据到buffer中或者修改buffer中的数据时,例如DBWR正在写一些数据块到数据文件的同时,其他进程需要去读取相应的数据块。同时也可能表示在表上设置的freelist太小,不能支持大量并发的INSERT操作。在v$session_wait视图的p1子段值表示相关数据块所在的文件号,p2表示文件上的块编号。通过这些信息与dba_data_files和dba_extents的联合查询就可以很快定位到发生竞争的对象,从而近一步确定问题的根源。
Db file parrle write 于dbwr进程相关的等待,一般都代表了io能力出现问题。通常与配置的多个dbwr进程或者dbwr的io slaves个数有关,当然也可能意味这在设备上出现io竞争!
Db file scattered read 表示发生了于全表扫描的等待。通常意味者全表扫描过多,或者io能力不足,或者io竞争
Db file sequential read 表示发生了于索引扫描有关的等待。同样意味者io出现了问题,表示io出现了竞争和io需求太多
Db file single write 表示在检查点发生时与文件头写操作相关的等待。通常于检查点同步数据文件时文件号的紊乱有关
Direct path read 表示于直接io读相关的等待。当直接读数据到pga内存时,direct path read出现。这种类型的读请求典型的作为:排序io并行slave查询或者预先读请求等。通常这种等待于io能力或者io竞争有关
Direct path write 同上
Enqueue 表示于内部队列机制有关的等待,例如保护内部资源或者组件的锁的请求等,一种并发的保护机制
Free buffer inspected 表示在将数据读入数据告诉缓冲区的时候等待进程找到足够大的内存空间。通常这种等待表示数据缓冲区偏小。
Free buffer waits 表述数据告诉缓存区缺少内存空间。通常于数据高速缓冲区内存太小或者脏数据写出太慢导致。在这种情况下,可以考虑增大高速缓存区或者通过设置更多的dbwr来解决
Latch free 表示某个锁存器发生了竞争。首先应该确保已经提供了足够多的latch数,如果仍然发生这种等待事件,应该进一步确定是那种锁存器上发生了竞争(在v$session_wait上的p2子段表示了锁存器的标号),然后判断是什么引起了这种锁存器竞争。大多数锁存器竞争不是简单的锁存器引起的,而是于锁存器相关的组件引起的,需要找到具体导致竞争的根本。例如,如果发生了library cache latch竞争,那么通常表示库缓存配置不合理,或者sql语句书写不合理,带来了大量的硬分析。
Library cache load lock 表示在将对象装入到库高速缓冲区的时候出现了等待。这种事件通常代表者发生了负荷很重的语句重载或者装载,可能由于sql语句没有共享池区域偏小导致的。
Library cache lock 表示与访问库高速缓存的多个进程相关的等待。通常表示不合理的共享池大小。
Library cache pin 这个等待事件也与库高速缓存的并发性有关,当库高速缓存中的对象被修改或者被检测的时候发生
Log buffer space 表示日志缓冲区出现了空间等待事件。这种等待事件意味者写日志缓冲区的时候得不到相应的内存空间,通常发生在日志缓冲区太小或者LGWR进程写太慢的时候。
Log file parallel write 表示等待LGWR向操作系统请求io开始直到完成io。在触发LGWR写的情况下入3秒,1/3,1MB、DBWR写之前可能发生。这种事件发生通常表示日志文件发生了io竞争或者文件所在的驱动器较慢。
Log file single write 表示写文件头块的时候出现了等待。一般都是发生在检查点发生时。
Log file switch
(archiveing needed) 由于归档过慢造成日志无法进行切换而发生的等待。这种等待事件的原因可能比较多,最主要的原因是归档速度赶不上日志切换的速度。可能的原因包括了重作日志太了,重作日志组太少,归档能力低,归档文件发生了io竞争,归档日志挂起,或者归档日志放在了慢的设备上。
Log file switch
(checkpoint incomplete) 表示在日志切换的时候文件上的检查点还没有完成。一般意味者日志文件太小造成日志切换切换太快或者其他原因。
Log file sync 表示当服务进程发出commit或者rollbabk命令后,直到LGWR完成相关日志写操作这段时间的等待。如果有多个服务进程同时发出这种命令,LGWR不能及时完成日志的写操作,就有可能造成这种等待。
Transaction 表示发生一个阻赛回滚操作的等待
Undo segment extension 表示在等待回滚段的动态扩展。这表示可能事务量过大,同时也意味者可能回滚段的初始大小不是最优,minextents设置偏小。考虑减少事务,或者使用最小区数更多的回滚段。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/85922/viewspace-888836/,如需转载,请注明出处,否则将追究法律责任。

下一篇: flashback的使用
请登录后发表评论 登录
全部评论
  • 博文量
    126
  • 访问量
    1078836