定制表空间保留策略

在大型数据库中,回收站很大,垃圾很多,表空间查询起来特别慢。为了防止意外操作,不可能每次drop表的时候加上perge,这时候垃圾越来越多,查表空间要等很久。这时,定制一个表空间保留策略就显得非常有必要。下面将我的脚本共享一下,加入job中便可自动清理。

create or replace procedure lhj_delete_recyclebin ( preserve_date in number ) is
/*
存储过程名:lhj_delete_recyclebin
编写人:XXX
功能:清理回收站(默认保留7天)   purge table xx会把表对应的索引purge掉
用法:
   begin
     lhj_delete_recyclebin(6);
   end;
*/
v_sql varchar2 ( 1000 );
cursor c ( v_preserve_date number ) is
select owner , original_name , droptime , type from dba_recyclebin where /*owner='GGS' and */ type = 'TABLE'
and to_date ( droptime , 'yyyy-mm-dd hh24:mi:ss' )< trunc ( sysdate )- v_preserve_date order by 3 ;   --保留一周的表 可修改时间
v_preserve_date number := preserve_date ;
begin
  if v_preserve_date is null then
   v_preserve_date := 7 ;
  end if ;
  for x in c ( v_preserve_date ) loop
    begin
   v_sql := 'purge table ' || x.owner || '.' || x.original_name ;
    --dbms_output.put_line(v_sql);
    execute immediate v_sql ;
    exception
      when others then
        rollback ;
    end ;
  end loop ;
end ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值