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

Oracle OWI等待事件历史视图及相关视图

Oracle OWI等待事件历史视图及相关视图
 
Oracle提供的等待事件视图使得我们可以获取指定session以及实例级别等待事件的详细信息,这些视图分别是v$session_wait,v$session_event,以及v$system_event。然而这几个视图对于历史等待事件无能为力。
 
对此,Oracle也提供了历史等待事件视图v$session_wait_history,同时视图v$session_wait_class,v$system_wait_class也提供了基于等待类别的性能分析,下面是基于Oracle 10g对此展开的描述。
 
1、视图v$session_wait_history
[sql] 
--望文生义可知,v$session_wait_history视图提供了历史等待事件的信息。  
--v$session_wait_history与v$session_wait基本相同,仅仅多出了SEQ#,EVENT#,WAIT_COUNT这三列。  
--SEQ#列表示SESSION按顺序遇到的等待事件,最近的等待事件为1,最远的为10。  
--通过该视图可以快速了解指定sid最近曾经经历了哪些等待(美中不足的是只提供最近的10个等待事件)。  
--当开始一个新的等待事件时,该视图中的信息将被刷新,记录最远时间的事件将会移出,同时最新的等待事件为1,其他向后移一个顺序号。  
--WAIT_TIME 列表示这个等待事件在会话中的等待时间。=0:表示正在等待事件完成;>0最后的等待时间。  
--WAIT_CONT列表示等待的次数。  
  
--查询历史sid  
goex_admin@SYBO2SZ> SELECT DISTINCT sid  
  2    FROM v$session_wait_history h  
  3   WHERE NOT EXISTS  
  4            (SELECT 1  
  5               FROM v$session_event  
  6              WHERE sid = h.sid);  
  
       SID  
----------  
      1062  
      1065  
      1060  
  
--下面查询sid为1062的历史等待事件信息  
--下面的查询可以看出该sid经历了一系列的等待事件  
--seq#为10的表明是sql被解析到library cache时的等待  
--seq#为9的则是表明加载数据字典到缓冲区碰到的等待  
--seq#为7,8则表明在返回结果时经历了db file sequential read等待  
--seq#为6表明当前sid所需的数据块在被读入buffer时,此时其他的session正在将该块读入buffer  
--seq#为1,2表明处于空闲等待,从WAIT_TIME为0也可知为空闲等待,之后该sid被关闭  
goex_admin@SYBO2SZ> select sid,seq#,event#,event,wait_time,wait_count from v$session_wait_history where sid=1062;  
  
       SID       SEQ#     EVENT# EVENT                            WAIT_TIME WAIT_COUNT  
---------- ---------- ---------- ------------------------------- ---------- ----------  
      1062          1        257 SQL*Net message from client              0          1  
      1062          2        253 SQL*Net message to client                0          1  
      1062          3        116 db file sequential read                  9          1  
      1062          4        257 SQL*Net message from client              0          1  
      1062          5        253 SQL*Net message to client                0          1  
      1062          6         67 read by other session                    6          1  
      1062          7        116 db file sequential read                 11          1  
      1062          8        116 db file sequential read                  1          1  
      1062          9        205 latch: row cache objects                 9          1  
      1062         10        212 latch: library cache                     5          1        
2、视图v$session_wait_class
[sql] 
--该视图提供了当前连接到数据库实例的所有会话级的信息。  
--查看所有session等待类别  
goex_admin@SYBO2SZ>   SELECT wait_class#,  
  2           wait_class,  
  3           SUM (total_waits),  
  4           SUM (time_waited)  
  5      FROM v$session_wait_class  
  6  GROUP BY wait_class#, wait_class  
  7  ORDER BY 3, 4;  
    
WAIT_CLASS# WAIT_CLASS            SUM(TOTAL_WAITS) SUM(TIME_WAITED)  
----------- --------------------- ---------------- ----------------  
          1 Application                         42                0  
          2 Configuration                     1219           110012  
          5 Commit                            1332              154  
          0 Other                            14387            19744  
          4 Concurrency                      34092            74180  
          8 User I/O                       1945820            42429  
          9 System I/O                     3899256           731677  
          7 Network                        4580071             9068  
          6 Idle                
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,