当前位置:数据库 > Oracle >>

oracle等待事件-1

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来记录数据库自启动以来所有等待事件的汇总信息,通过这个视图用户可以迅速的获得数据库运行的总体概况。
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,