oracle 等待事件-1

一、等待事件的相关知识

1、等待事件的源起
     等待事件的概念大概是从ORACLE 7.0.12中引入的,大致有100个等待事件。在ORACLE 8.0中这个数目增大到了大约150个,在ORACLE 8I中大约有220个事件,在ORACLE 9IR2中大约有400个等待事件,而在最近ORACLE 10GR2中,大约有874个等待事件

     虽然不同版本和组件安装可能会有不同数目的等待事件,但是这些等待事件都可以通过查询V$EVENT_NAME视图获得

2、等待事件分类:

等待事件可以分成两类,即空闲等待事件(IDLE)和非空闲等待事件(NON-IDLE)

1)、空闲等待事件:是指oracle正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分等待事件。

2)、非空闲等待事件:指专门针对oracle数据库活动的事件,数据库任务或应用运行过程中发生的等待,这些等待事件是在调整数据库的时候需要关注和研究的。

3、查看$event_name视图的字段结构


SQL> desc v$event_name;
 Name   Null?    Type
 ----------------------------------------- -------- ----------------------------
 EVENT#    NUMBER
 EVENT_ID    NUMBER
 NAME    VARCHAR2(64)
 PARAMETER1             VARCHAR2(64)
 PARAMETER2     VARCHAR2(64)
 PARAMETER3             VARCHAR2(64)
 WAIT_CLASS_ID             NUMBER
 WAIT_CLASS#     NUMBER
 WAIT_CLASS    VARCHAR2(64)

4、查看等待事件的总数

SQL> select count(*) from v$event_name;


  COUNT(*)
----------
       874

5、查看等待事件情况分类

SQL> select 
 WAIT_CLASS#,WAIT_CLASS,WAIT_CLASS_ID ,count(*) as "count"
from v$event_name
 group by WAIT_CLASS#,WAIT_CLASS,WAIT_CLASS_ID
order by WAIT_CLASS#;  2    3    4    5  


WAIT_CLASS#           WAIT_CLASS WAIT_CLASS_ID count        
-------------------------------- ------------------- ------------- ----------
 0 Other 1893977003  590
 1 Application 4217450380   12
 2 Configuration 3290255840   23
 3 Administrative 4166625743   46
 4 Concurrency 3875070507   24
 5 Commit 3386400367    1
 6 Idle 2723168908   62
 7 Network 2000153315   26
 8 User I/O 1740759767   17
 9 System I/O 4108307767   24
10 Scheduler 2396326234    2


WAIT_CLASS# WAIT_CLASS     WAIT_CLASS_ID count
----------- -------------------------------------------------------------------------------------------------------------------------------- ------------- ----------
11 Cluster 3871361733   47


12 rows selected.

6、相关查询视图:

V$SESSION:代表数据库活动的开始,视为源起

V$SESSION_WAIT:视图用以实时记录活动session的情况,是当前信息。

V$SESSION_WAIT_HISTORY:是对session_wait 的增强记忆,记录活动session的近10次

V$SQLTEXT:当数据库出现瓶颈时,可以从session_wait中找到那些正在等待资源的session,通过session的SID,联合V$SESSION和V$SQLSTEXT视图可以捕获那些session正在执行的SQL语句。

V$ACTION_SESSION_HISTORY:是ASE的核心,用以记录活动session的历史等待信息,没标采样一次,这部分内容记录在内存中,期望值是记录一个小时的session。

V$SYSTEM_EVENT:由于session记录的是动态信息,和session的生命周期相关,而并不记录历史信息,所以oracle提供视图V$SYSTEM_EVENT来记录数据库自启动以来所有等待事件的汇总信息,通过这个视图用户可以迅速的获得数据库运行的总体概况。


你可能感兴趣的:(等待事件,oracle基础,oracle数据库管理)