使用 v$session 视图查看进程的详细信息

ZDNet软件频道 时间:2004-07-15 作者:Builder.com |  我要评论()
本文关键词:Oracletips
v$session 视图的一个不太有名的特性是它能够解码由单个会话执行的实际命令。信息被编码到一个特殊的字段 v$session_command。
本文译自Builder.com,未经许可请勿转载

v$session 视图的一个不太有名的特性是它能够解码由单个会话执行的实际命令。信息被编码到一个特殊的字段 v$session_command

在查询 v$session 视图的时候,我们根据它的内部表示解码每一个字段。这样我们就可以创建一个数据字典查询,使用这个数据字典来显示每一个用户、这些用户在执行的程序,以及在这些用户的系统中正在执行的程序内部当前的命令。

当你需要快速找出他们的 Oracle 系统的内部情况时非常有用。

这个简单的脚本举例说明了 v$session_command

select
   substr(s.username,1,18) username,
   substr(s.program,1,15) program,
   decode(s.command,
       0,'No Command',
       1,'Create Table',
       2,'Insert',
       3,'Select',
       6,'Update',
       7,'Delete',
       9,'Create Index',
      15,'Alter Table',
      21,'Create View',
      23,'Validate Index',
      35,'Alter Database',
      39,'Create Tablespace',
      41,'Drop Tablespace',
      40,'Alter Tablespace',
      53,'Drop User',
      62,'Analyze Table',
      63,'Analyze Index',
         s.command||': Other') command
from  
   v$session     s,
   v$process     p,
   v$transaction t,
   v$rollstat    r,
   v$rollname    n
where s.paddr = p.addr
and   s.taddr = t.addr (+)
and   t.xidusn = r.usn (+)
and   r.usn = n.usn (+)
order by 1
;

下面是一个输出的例子,显示了每个会话的单个命令:


本文作者:Donald Burleson是有23年经验的数据库管理员,他出版过14本数据库专著,发表论文达100余篇。Donald Burleson是Oracle Internals的主编和Burleson Oracle Consulting的总裁。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134