得到表的記錄數和佔用的儲存空間指令碼

chance2000發表於2006-03-26

以前都是要查哪個表的就寫個sql得到。呵呵

現在整理為一個指令碼吧。供參考

[@more@]

--得到表的記錄數和佔用的空間
--dbms_output.enable(100000);
set serveroutput on
declare
cnt number;
col varchar2(300);
begin
for rec in (select segment_name,sum(bytes)/1024/1024 mbytes
from user_segments
where segment_type = 'TABLE'
group by segment_name)
loop
begin
execute immediate 'select count(*) from '||
rec.segment_name into cnt;
exception
when others then
cnt := 0;
end;
if cnt is null
then
cnt := 0;
end if;
select 'Table: '||rpad(rec.segment_name,30)||
' Count: '||rpad(to_char(cnt),10)||
' Space: '||rpad(to_char(rec.mbytes,999999.99),10)||' MBytes.'
into col
from dual;
dbms_output.put_line(col);
end loop;
end;
/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/802415/viewspace-823051/,如需轉載,請註明出處,否則將追究法律責任。

相關文章