tbsmon.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(f.tablespace_name) tbsname
  9.       ,max(d.Tot_grootte_Mb) tbssize
  10.       ,max(d.Tot_grootte_Mb) - round(sum(f.bytes)/(1024*1024),2) tbsused
  11.       ,(max(d.Tot_grootte_Mb) - round(sum(f.bytes)/(1024*1024),2)) /
  12.        max(d.Tot_grootte_Mb) * 100 tbspused
  13.       ,round(sum(f.bytes)/(1024*1024),2) tbsfree
  14.       ,count(f.bytes) tbsparts 
  15.       ,round(max(f.bytes)/(1024*1024),2) tbsbig
  16. from sys.dba_free_space f
  17. ,    (select dd.tablespace_name, round(sum(dd.bytes)/(1024*1024),2) Tot_grootte_Mb
  18.       from   sys.dba_data_files dd
  19.       group by dd.tablespace_name) d
  20. where d.tablespace_name = f.tablespace_name
  21. group by f.tablespace_name
  22. order by 1;
  23. begin
  24.  dbms_output.enable(100000);
  25.  -- detailed sessions
  26.  dbms_output.put_line('TABLESPACE_NAME                   SIZE    USED  %USED    FREE   PARTS BIGGEST');
  27.  t_number1 := 0;
  28.  for r_tbs in c_tbs 
  29.  loop
  30.    dbms_output.put_line(rpad(ltrim(r_tbs.tbsname),30)                            ||
  31.                         lpad(ltrim(to_char(r_tbs.tbssize,'9990.00')),8)          ||
  32.                         lpad(ltrim(to_char(r_tbs.tbsused,'9990.00')),8)          ||
  33.                         lpad(ltrim(to_char(r_tbs.tbspused,'990.00')),7)          ||
  34.                         lpad(ltrim(to_char(r_tbs.tbsfree,'9990.00')),8)          ||
  35.                         lpad(ltrim(to_char(r_tbs.tbsparts,'9999990')),8)          ||
  36.                         lpad(ltrim(to_char(r_tbs.tbsbig,'9990.00')),8));
  37.    t_number1 := t_number1 + 1;
  38.    exit when t_number1 = t_lines;
  39.  end loop;
  40. end;
  41. /