Oracle Wait Interface: V$SESSION_WAIT

上一篇文档中提到,从 7.0.12 版本开始,V$SESSION_WAIT 就是如下四个基本 OWI 视图之一。

  • V$EVENT_NAME
  • V$SESSION_WAIT
  • V$SESSION_EVENT
  • V$SYSTEM_EVENT

现在看看 V$SESSION_WAIT 的相关信息。

SQL> desc V$session_wait;
Name                             Null?    Type
-------------------------------- -------- ----------------------
SID                                       NUMBER
SEQ#                                      NUMBER
EVENT                                     VARCHAR2(64)
P1TEXT                                    VARCHAR2(64)
P1                                        NUMBER
P1RAW                                     RAW(4)
P2TEXT                                    VARCHAR2(64)
P2                                        NUMBER
P2RAW                                     RAW(4)
P3TEXT                                    VARCHAR2(64)
P3                                        NUMBER
P3RAW                                     RAW(4)
 WAIT_CLASS_ID                             NUMBER
WAIT_CLASS#                               NUMBER
WAIT_CLASS                                VARCHAR2(64)
WAIT_TIME                                 NUMBER
SECONDS_IN_WAIT                           NUMBER
STATE                                     VARCHAR2(19)
SQL>

加粗的列是 10g 新增的,其中 STATE 列 的描述如下(参考 Oracle Database Reference 10g Release 1 Part Number B10755-01):

  • 0 – WAITING (当前等待的 Session)
  • -2 – WAITED UNKNOWN TIME (最后等待持续时间未知)
  • -1 – WAITED SHORT TIME (最后的等待 <1/100 秒)
  • >0 – WAITED KNOWN TIME (WAIT_TIME = 最后等待持续时间)

该视图的 P1RAW,P2RAW,P3RAW 列对应 P1,P2,P3 的十六进制值;P1TEXT,P2TEXT,P3TEXT 列对应 P1,P2,P3 列的解释。

该视图从 x$ksusecst (Kernel Services Session status Contents for events) 和 x$ksled(Kernel Service Latch Event Descriptors) 得来:

SELECT s.inst_id, s.indx, s.ksussseq, e.kslednam, e.ksledp1, s.ksussp1,
s.ksussp1r, e.ksledp2, s.ksussp2, s.ksussp2r, e.ksledp3, s.ksussp3,
s.ksussp3r, e.ksledclassid, e.ksledclass#, e.ksledclass,
DECODE (s.ksusstim,
0, 0,
-1, -1,
-2, -2,
DECODE (ROUND (s.ksusstim / 10000),
0, -1,
ROUND (s.ksusstim / 10000)
)
),
s.ksusewtm,
DECODE (s.ksusstim,
0, 'WAITING',
-2, 'WAITED UNKNOWN TIME',
-1, 'WAITED SHORT TIME',
DECODE (ROUND (s.ksusstim / 10000),
0, 'WAITED SHORT TIME',
'WAITED KNOWN TIME'
)
)
FROM x$ksusecst s, x$ksled e
WHERE BITAND (s.ksspaflg, 1) != 0
AND BITAND (s.ksuseflg, 1) != 0
AND s.ksussseq != 0
AND s.ksussopc = e.indx;

在 10g 中 V$SESSION 包含的信息更为全面,基本取代了 V$SESSION_WAIT 。

Google+
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值