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

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_tbs is
  8. select lower(d.tablespace_name) tbsname
  9.       ,substr(d.file_name,instr(d.file_name,'/',-1,1)+1) dbfname
  10.       ,d.bytes/(1024*1024) dbfsize
  11.       ,d.maxbytes/(1024*1024) dbfmaxsize
  12.       ,round(sum(f.bytes)/(1024*1024),2) dbffree
  13.       ,count(f.bytes) dbfparts 
  14.       ,round(max(f.bytes)/(1024*1024),2) dbfbig
  15.       ,d.bytes/(1024*1024) - round(sum(f.bytes)/(1024*1024),2) dbfused
  16. from sys.dba_free_space f
  17.     ,sys.dba_data_files d
  18. where d.file_id = f.file_id
  19. group by d.tablespace_name,d.file_name,d.bytes,d.maxbytes
  20. order by 1,2;
  21. begin
  22.  dbms_output.enable(100000);
  23.  -- detailed sessions
  24.  dbms_output.put_line('TABLESPACE:FILE_NAME                 SIZE  MAXSIZE    USED    FREE PARTS BIGGEST');
  25.  t_number1 := 0;
  26.  for r_tbs in c_tbs 
  27.  loop
  28.    dbms_output.put_line(rpad(ltrim(r_tbs.tbsname)||':'||
  29.                         ltrim(r_tbs.dbfname),33)                                 ||
  30.                         lpad(ltrim(to_char(r_tbs.dbfsize,'9990.00')),8)          ||
  31.                         lpad(ltrim(to_char(r_tbs.dbfmaxsize,'99990.00')),9)      ||
  32.                         lpad(ltrim(to_char(r_tbs.dbfused,'9990.00')),8)          ||
  33.                         lpad(ltrim(to_char(r_tbs.dbffree,'9990.00')),8)          ||
  34.                         lpad(ltrim(to_char(r_tbs.dbfparts,'99990')),6)           ||
  35.                         lpad(ltrim(to_char(r_tbs.dbfbig,'9990.00')),8));
  36.    t_number1 := t_number1 + 1;
  37.    exit when t_number1 = t_lines;
  38.  end loop;
  39. end;
  40. /