ITPub博客

首页 > Linux操作系统 > Linux操作系统 > V$event_name

V$event_name

原创 Linux操作系统 作者:baohongchang 时间:2010-04-23 13:57:17 0 删除 编辑

V$event_name 视图不是动态的v$视图,它提供的信息并不随时间而变化。它是参考视图,包含所有为数据库实例定义的等待事件。

名称                                      是否为空? 类型
----------------------------------------- -------- --------------

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)

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

  COUNT(1)
----------
       874 --说明此版本及所选的安装选项中共包含874个等待事件。

event#是事件的唯一编号,该编号是由Oracle代码中的编译时间宏生成,所以对于同一等待事件,从一个Oracle版本到另一个版本时,这一编号会发生变化。

event_id列,包含基于事件名称的一个散列值。只要该事件名称不变,改散列值在不同的版本间就会保持不变。

   name包含等待事件的名称,每个等待事件最多有三个属性,分别记录在parameter1, parameter2, parameter3列中。这些属性给出等待事件每次发生时的特定信息。

   wait_class_id包含等待类名的散列值,只要等待类名不变,该散列值将在版本间保持不变。

   wait_class# 包含wait_class的唯一编号,该编号可能随版本变化而改变。

   wait_class 包含等待事件类的实际名称。

其中parameter1,parameter2,parameter3对应v$session_wait中的p1,p2,p3 这是非常重要的几列。
与v$system_event视图联合使用: select n.wait_class, sum(e.time_waited)/1000000 time_waited
 from v$event_name n, v$system_event e where n.name=e.event group by n.wait_class.

WAIT_CLASS           TIME_WAITED
-------------------- -----------
Concurrency              .028576
User I/O                  .03034
System I/O               .059107
Administrative           .000001
Configuration            .000074
Other                    .002279
Application              .005651
Idle                  559.781838
Commit                   .002759
Network                  .000091

v$event_name 从 X$ 表 X$ksled(Kernel Service Latch Event Descriptors) 而来(感谢 Rudolf Lu 友情提供的方便而实用的脚本!),创建语句类似如下:

SELECT inst_id, indx, ksledhash, kslednam, ksledp1, ksledp2, ksledp3,
       ksledclassid, ksledclass#, ksledclass
  FROM x$ksled;

对应的列:

MEANINGFUL NAME              X$ TABLE COLUMN NAME
=====================        ======================
event#                        indx
event_id                      ksledhash
name                          kslednam
parameter1                    ksledp1
parameter2                    ksledp2
parameter3                    ksledp3
wait_class_id                 ksledclassid
wait_class#                   ksledclass#
wait_class                    ksledclass

而 V$SESSION_WAIT 视图是基于 x$ksusecst 、x$ksled这两个固定表的,所以上文中提到的 v$event_name 的 PARAMETER1、PARAMETER2 PARAMETER3 对应 V$SESSION_WAIT 中的 P1、P2、P3 列也不足为奇了。

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

上一篇: 没有了~
下一篇: V$FILESTAT(转)
请登录后发表评论 登录
全部评论

注册时间:2009-12-01

  • 博文量
    6
  • 访问量
    19078