Oracle存储使用情况,我收藏的oracle中一些分析空间使用情况的存储过程!
tom寫了個好工具show_space,這個工具對于oracle來講其實就是個存儲過程,這個存儲過程可以用來分析空間使用情況,有了此工具,就不用再通過寫sql語句來看每條記錄或表占用表空間的大小了,使用起來很方便。
具體使用過程如下:
首先需要創建一個存儲過程:
d:\>sqlplus /nolog
sql>connect / as sysdba
sql>create or replace procedure show_space
( p_segname in varchar2,
p_owner in varchar2 default user,
p_type in varchar2 default table,
p_partition in varchar2 default null )
as
l_total_blocks number;
l_total_bytes number;
l_unused_blocks number;
l_unused_bytes number;
l_lastusedextfileid number;
l_lastusedextblockid number;
l_last_used_block number;
procedure p( p_label in varchar2, p_num in number )
is
begin
dbms_output.put_line( rpad(p_label,40,.) ||
p_num );
end;
begin
dbms_space.unused_space
( segment_owner => p_owner,
segment_name => p_segname,
segment_type => p_type,
partition_name => p_partition,
total_blocks => l_total_blocks,
total_bytes => l_total_bytes,
unused_blocks => l_unused_blocks,
unused_bytes => l_unused_bytes,
last_used_extent_file_id => l_lastusedextfileid,
last_used_extent_block_id => l_lastusedextblockid,
last_used_block => l_last_used_block );
p( total blocks, l_total_blocks );
p( total bytes, l_total_bytes );
p( unused blocks, l_unused_blocks );
p( unused bytes, l_unused_bytes );
p( last used ext fileid, l_lastusedextfileid );
p( last used ext blockid, l_lastusedextblockid );
p( last used block, l_last_used_block );
end;
/
procedure created.
執行以上語句會在當前用戶下生成一個procedure,當前用戶為sys用戶。
sql>create table t as select * from all_users; (創建表t)
sql> exec show_space(t); (查看表t占用空間大小)
free blocks.............................0
total blocks............................15
total bytes.............................61440
unused blocks...........................13
unused bytes............................53248
last used ext fileid....................13
last used ext blockid...................61782
last used block.........................2
結果馬上就出來了,以前必須通過sql語句查詢dba_tables才能得到結果,可見,此工具的方便性。
另外,此工具有好幾個版本,目前上面這個版本只適合表空間為非assm的時候,assm的時候是不能用的,原因是dbms_space.free_blocks 不允許在assm上操作,解決方法如下:
對于assm,可以使用dbms_space.space_usage
總結
以上是生活随笔為你收集整理的Oracle存储使用情况,我收藏的oracle中一些分析空间使用情况的存储过程!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宁波大学2020计算机技术复试线,宁波大
- 下一篇: matlab基础试题,MATLAB基础试