SHOW_SPACE脚本

经常看到有人在论坛中用到show_space,今天搜索了一下发现是TOM大叔写的脚本,特地收藏方便查找。
转载自:http://space.itpub.net/12361284/viewspace-170233

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_free_blks number;
  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;
  l_segment_space_mgmt varchar2(255);
  l_unformatted_blocks number;
  l_unformatted_bytes number;
  l_fs1_blocks number;l_fs1_bytes number;
  l_fs2_blocks number;l_fs2_bytes number;
  l_fs3_blocks number;l_fs3_bytes number;
  l_fs4_blocks number;l_fs4_bytes number;
  l_full_blocks number;l_full_bytes number;
 
  procedure p(p_label in varchar2,p_num in number)
  is
  begin
       dbms_output.put_line(rpad(p_label,40,'.')||to_char(p_num,'999,999,999,999'));
  end;
begin
     execute immediate
             'select ts.segment_space_management from dba_segments seg,dba_tablespaces ts where seg.segment_name = :p_segname and (:p_partition is null or seg.partition_name = :p_partition) and seg.owner = :p_owner and seg.tablespace_name=ts.tablespace_name'
             into l_segment_space_mgmt
             using p_segname,p_partition,p_partition,p_owner;
            
--     exception
--             when too_many_rows
--             then
--             dbms_output.put_line('This must be a partitioned table,use p_partition => ');
--             return;
--     end;
   
     IF l_segment_space_mgmt = 'AUTO'
     then
         dbms_space.space_usage
         (p_owner,p_segname,p_type,l_unformatted_blocks,
          l_unformatted_bytes,l_fs1_blocks,l_fs1_bytes,
          l_fs2_blocks,l_fs2_bytes,l_fs3_blocks,l_fs3_bytes,
          l_fs4_blocks,l_fs4_bytes,l_full_blocks,l_full_bytes,p_partition);
                               
         p('Unformatted Blocks  ',l_unformatted_blocks);
         p('FS1 Blocks (0-25)   ',l_fs1_blocks);
         p('FS2 Blocks (25-50)  ',l_fs2_blocks);
         p('FS3 Blocks (50-75)  ',l_fs3_blocks);
         p('FS4 Blocks (75-100) ',l_fs4_blocks);
         p('Full Blocks         ',l_full_blocks);
     else
         dbms_space.free_blocks(
               segment_owner => p_owner,
               segment_name  => p_segname,
               segment_type  => p_type,
               freelist_group_id => 0,
               free_blks => l_free_blks);
     end if;
    
    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('Total MBytes ',trunc(l_total_bytes/1024/1024));
      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;
/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23135684/viewspace-662266/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23135684/viewspace-662266/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
修改完整版的sql存储(积分兑换脚本),改写出可执行的shell和hive脚本。 积分兑换脚本: create procedure "rptdev"."sp_wjq_jf_value_dhfz_show"( in @data_date integer default cast("dateformat"("now"()-1,'yyyymmdd') as integer), in @is_run_flag1 integer default 1, in @is_run_flag2 integer default 10 ) on exception resume /****************************************************************** -- Purpose : 兑换积分分析报表 -- Auther: xxx -- Date : 20210923 *******************************************************************/ begin declare @stat_date varchar(8); --统计日期 declare @month_id integer; --统计月份 declare @month_first_date varchar(8); --统计月的第一天 declare @month_last_date varchar(8); --统计月的最后一天 declare @last_month_first_date varchar(8); --上月的第一天 declare @last_month_last_date varchar(8); --上月的最后一天 declare @last_month integer; --上月 declare @last_last_month integer; --上上月 declare @last_month_this_day varchar(8); --上月当天 declare @last_year_this_month integer; --上年当月 declare @this_year_first_month integer; --本年首月 declare @last_year_last_month integer; --上年尾月 set @stat_date = convert(varchar(8),@data_date); set @month_id = @data_date/100; set @month_first_date = "dateformat"(@data_date,'yyyymm01'); --统计月的第一天 set @month_last_date = "dateformat"("dateadd"("dd",-1,"dateformat"("dateadd"("mm",1,@data_date),'yyyymm01')),'yyyymmdd'); --统计月的最后一天 set @last_month_first_date = "dateformat"("dateadd"("mm",-1,@data_date),'yyyymm01'); --上月第一天 set @last_month_last_date = "dateformat"("dateadd"("dd",-1,"dateformat"("dateadd"("mm",1,@data_date),'yyyymm01')),'yyyymmdd'); set @last_month = cast("dateformat"("dateadd"("month",-1,@data_date),'yyyymm') as integer); --上月 set @last_last_month = cast("dateformat"("dateadd"("month",-2,@data_date),'yyyymm') as integer); --上上月 set @last_month_this_day = "dateformat"("dateadd"("mm",-1,convert(date,@data_date)),'yyyymmdd'); --上月当天 set @last_year_this_month = convert(integer,"dateformat"("dateadd"("yy",-1,@last_month_this_day),'yyyymm')); --上年当月 set @this_year_first_month = convert(integer,"dateformat"("dateadd"("yy",0,@data_date),'yyyy01')); --本年首月 set @last_year_last_month = cast("dateformat"(convert(integer,"dateformat"("dateadd"("yy",-1,@data_date),'yyyy1231')),'yyyymm') as integer); --上年尾月 set temporary option "conversion_error" = 'OFF'; set temporary option "Query_Temp_Space_Limit" = 0; --drop table if exists rpt_wjq_jf_value_dhfz_list;commit;
06-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值