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

2/9/2008来源:Oracle教程人气:8963

 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