show_space(查看表空间使用情况)

本文提供两个Oracle存储过程,分别用于检查表空间中已使用和未使用的块数量及字节数,并统计ASSM中不同自由空间比例的块数。通过这些过程可以有效监控数据库的空间使用情况。

第一个过程,这个过程是用来查看表空间中已经使用的块(字节),未使用的块(字节)

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;

/  

第二个过程,这个过程是用来查看assm中各种块的使用量的统计:

create or replace procedure show_space_assm(
 p_segname in varchar2,
 p_owner in varchar2 default user,
 p_type in varchar2 default 'TABLE')
as 
 l_fs1_bytes   number;
 l_fs2_bytes   number;
 l_fs3_bytes   number;
 l_fs4_bytes   number;

 l_fs1_blocks  number;
 l_fs2_blocks  number;
 l_fs3_blocks    number;
 l_fs4_blocks    number;


 l_full_bytes     number;
 l_full_blocks    number;


 l_unformatted_bytes   number;
 l_unformatted_blocks  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.space_usage (
  segment_owner   =>p_owner,
  segment_name    =>p_segname,
  segment_type    =>p_type,
  fs1_bytes     =>l_fs1_bytes,
  fs1_blocks    =>l_fs1_blocks,


  fs2_bytes     =>l_fs2_bytes,
  fs2_blocks    =>l_fs2_blocks,


  fs3_bytes     =>l_fs3_bytes,
  fs3_blocks    =>l_fs3_blocks,


  fs4_bytes     =>l_fs4_bytes,
  fs4_blocks    =>l_fs4_blocks,


  full_bytes    =>l_full_bytes,
  full_blocks   =>l_full_blocks,


  unformatted_blocks    =>l_unformatted_blocks,
  unformatted_bytes     =>l_unformatted_bytes);


p('free space 0-25% blocks:' , l_fs1_blocks);
p('free space 25-50% blocks:' , l_fs2_blocks);
p('free space 50-75% blocks:' , l_fs3_blocks);
p('free space 75-100% blocks:' , l_fs4_blocks);




p('Full Blocks:' , l_full_blocks);
p('Unformatted Blocks:' , l_unformatted_blocks);


end;
/  





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值