首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > v$session_event- Oracle Wait Interface Memo查看当前会话所有信息(转:http://www.dbanotes.net/archives/2004/12/vsession_event.html)
【标  题】:v$session_event- Oracle Wait Interface Memo查看当前会话所有信息(转:http://www.dbanotes.net/archives/2004/12/vsession_event.html)
【关键字】:session_event,Oracle,Wait,Interface,Memo,http,//www.dbanotes.net/archives/2004/12/vsession_event.html
【来  源】:http://blog.csdn.net/tianyacao007/archive/2007/04/13/1563701.aspx

v$session_event- Oracle Wait Interface Memo查看当前会话所有信息(转:http://www.dbanotes.net/archives/2004/12/vsession_event.html)

 

v$session_event 记载了当前连接到数据库的所有会话的统计信息,从名字上也可以看出来,这是个会话级(Session Level)的动态视图。

继续以 Oracle Wait Interface: A Practical Guide to Performance Diagnostics & Tuning 这本书为参考,分析 OWI 。先看看v$session_event 的数据结构:

SQL> desc v$session_event
Name Null? Type
-------------------------------------- -------- --------------------------
SID NUMBER
EVENT VARCHAR2(64)
TOTAL_WAITS NUMBER
TOTAL_TIMEOUTS NUMBER
TIME_WAITED NUMBER
AVERAGE_WAIT NUMBER
MAX_WAIT NUMBER
TIME_WAITED_MICRO NUMBER
EVENT_ID NUMBER //10g's New Column

SQL>

V$SESSION_EVENT 语句由 X$KSLES (Kernel Service Current Session statistics) 和 x$ksled(Kernel Service Latch Event Descriptors) 这两个固定表得来。(致谢:抽取脚本由 Rudolf 友情提供,下载 )

SELECT s.inst_id, s.kslessid, d.kslednam, s.ksleswts, s.kslestmo,
ROUND (s.kslestim / 10000), ROUND (s.kslestim / (10000 * s.ksleswts)),
ROUND (s.kslesmxt / 10000), s.kslestim, d.ksledha sh
FROM x$ksles s, x$ksled d
WHERE s.ksleswts != 0 AND s.kslesenm = d.indx;

v$session_event 结构中包含 SID ,要想获取其中的内容,可能需要首先获取 SID 信息。可以通过 v$session 视图来做到,也可以利用 DBMS_SUPPORT 包来获取 SID 。要注意:在 Oracle RDBMS 9.2.0.1 与 9.2.0.2 中,因为 Bug:2429929 的影响,V$SESSION_EVENT.SID 是错误的(需要在该值的基础上+1)。

常用的 SQL 举例:

SQL> col sid      format 999
SQL> col event format a30
SQL> col username format a8
SQL> SELECT b.SID,
2 DECODE (b.username,
3 NULL, SUBSTR (b.program, 18),
4 b.username
5 ) username,
6 a.event, a.total_waits , a.time_waited ,
7 a.average_wait, a.max_wait
8 FROM v$session_event a, v$session b
9 WHERE b.SID = a.SID and b.username='SCOTT'
10 ORDER BY 1, 4;

SID USERNAME EVENT TOTAL_WAITS TIME_WAITED AVERAGE_WAIT MAX_WAIT
---- -------- ------------------------------ ----------- ----------- ------------ ----------
217 SCOTT SQL*Net more data from client 2 0 0 0
217 SCOTT SQL*Net break/reset to client 2 0 0 0
217 SCOTT SQL*Net more data to client 11 0 0 0
217 SCOTT SQL*Net message from client 88 151790 1725 85964
217 SCOTT SQL*Net message to client 89 0 0 0


SQL>

v$session_event 中比较重要的列是 TIME_WAITED 与 MAX_WAIT 。MAX_WAIT 列记载了每个会话每个时间的最大等待时间。可以通过执行

execute dbms_system.kcfrms;

来重置该列信息。Ora-600 写了一篇 新的Oracle时间信息特性 。内容很有参考价值。

[原创] 生成X个不重复的Y位长度的随机数:【上一篇】
数据库E-R图:【下一篇】
【相关文章】
  • stored procedure 收集session wait 信息(转)
  • 将Oracle恢复到不同的目录
  • Oracle 升级服务
  • 【求助】xmlhttp.responseStream怎么转化成C#能引用的数据流
  • 让UpdatePanel支持文件上传(5):支持页面重定向的HttpModule
  • oracle基本概念和术语(转)
  • Integrity Constraints [Oracle]
  • Oracle's V$ Views
  • Oracle's x$ Tables
  • XMLHTTPRequest简介
  • 【随机文章】
  • PhotoImpact照片边缘处理
  • [翻译]-Windows CE 程序设计 (3rd 版)--5.2 公共控件(四)
  • 最终幻想X-2 两则赚钱小技巧
  • 透过汇编另眼看世界之类成员函数指针
  • 是?,flash本身转矢量的本事太差了.可
  • Beta版浏览器的战争:IE 7 beta 2 V.S. Firefox 2 alpha 1 V.S.Opera beta1 [英文]
  • First Microsoft SaaS Application Demo Release!
  • 找不到tlbimp命令的解决方法
  • ASP系列讲座(十一)ActiveX 组件
  • Win XP系统如何快捷地整理硬盘碎片
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.