过程-自动表分析GATHER_TABLE_STATS

--适用于非分区表
create or replace procedure fx_table as


P_name varchar2(100);
errors varchar2(200);
info2 varchar2(200);
 cursor my_cur is select b.table_name
from dba_tables b
where
and b.OWNER='XXX
and b.PARTITIONED='NO'
order by b.num_rows asc ;

BEGIN
 open my_cur;
 fetch my_cur into P_name ;
 while my_cur%found
   loop
    -- dbms_output.put_line(P_name);
       DBMS_STATS.GATHER_TABLE_STATS(ownname => 'XXX,
                                 tabname => P_name,
                                 estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE,
                                 method_opt => 'for all columns size repeat',
                                 degree =>4 ,
                                 cascade=>TRUE
                                 );
     insert into fx_table_log values(P_name,sysdate,'');
     commit;
     fetch my_cur into P_name ;
     end loop;
     close my_cur;

EXCEPTION
      WHEN OTHERS THEN
        info2 :=SQLERRM||','||SQLCODE;
        errors:=info2;
 insert into fx_table_log values(P_name,sysdate,errors);
 commit;
end fx_table;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值