所谓等待事件,是当一个进程连接到数据库之后,进程所经历的种种等待就开始被记录。等待事件主要可以分为两大类,即空闲(idle)等待事件和非空闲(non-idle)等待事件:
◆空闲(idle)等待事件:Oracle会话正在等待某种工作,在诊断和优化数据库时,通常无需过多关注这类等待事件。
◆非空闲(non-idle)等待事件:专门针对Oracle会话的活动,指数据库任务或应用运行过程中发生的等待,这类等待事件是诊断优化性能问题时必须关注的事件。
图3-1 Oracle 11.2.0.4等待事件分类
以上等待事件分类的简要解释如下表:
等待事件的数目随着Oracle版本的演进不断细化,同时根据等待资源的不同进行分类,为快速精准的诊断Oracle性能瓶颈提供强大的支撑。以Oracle 11.2.0.4版本为例,等待事件的数目已达1367个,等待事件分类如下:
select wait_class,count(*) from v$event_name group by wait_class order by 2;