sesmon.sql
上传用户:rjj0351
上传日期:2007-01-07
资源大小:9k
文件大小:1k
源码类别:

Oracle数据库

开发平台:

SQL

  1. set feedback off
  2. set verify off
  3. set serveroutput on
  4. declare
  5. t_number1 number :=0;
  6. t_lines   number :=&1;
  7. cursor c_session is
  8. select ses.sid
  9.       ,decode(ses.username,null,'internal',ses.username) username
  10.       ,decode(ses.osuser,null,'internal',ses.osuser) osuser
  11.       ,substr(ses.program,1,26) program
  12.       ,sio.physical_reads IO
  13.       ,sta.value/100 CPU
  14.       ,ses.status
  15. from  v$session ses
  16.      ,v$sess_io sio
  17.      ,v$sesstat sta
  18.      ,v$statname stn
  19. where ses.SID = sio.SID
  20.   and sta.STATISTIC# = stn.STATISTIC#
  21.   and sta.SID = ses.SID
  22.   and stn.name like '%CPU used by this session%'
  23. order by 7,&2 desc, 1;
  24. begin
  25.  dbms_output.enable(100000);
  26.  -- detailed sessions
  27.  dbms_output.put_line('SID USERNAME  OSUSER      PROGRAM                     DISK I/O     CPU    STATUS');
  28.  t_number1 := 0;
  29.  for r_session in c_session 
  30.  loop
  31.    dbms_output.put_line(rpad(ltrim(r_session.sid),4)                             ||
  32.                         rpad(ltrim(r_session.username),10)                       ||
  33.                         rpad(ltrim(r_session.osuser),12)                         ||
  34.                         rpad(ltrim(r_session.program),26)                        ||
  35.                         lpad(ltrim(r_session.IO),10)                             ||
  36.                         lpad(ltrim(to_char(r_session.CPU,'9990.00')),8)          ||
  37.                         lpad(ltrim(r_session.status),10));
  38.    t_number1 := t_number1 + 1;
  39.    exit when t_number1 = t_lines;
  40.  end loop;
  41. end;
  42. /