dbms_stats包的使用

1. 分析指定 schema


declare
    start_time varchar2(21);
    end_time varchar2(21);
    user_name varchar2(30);
begin
    dbms_output.disable;
    dbms_output.enable(1000000);
    dbms_output.put_line('-----------------------------------');
    user_name := upper('&username');
    dbms_output.put_line('schema: ' || user_name);
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') into start_time from dual;
    dbms_output.put_line('analyze start : ' || start_time);
    dbms_stats.gather_schema_stats(
        ownname => user_name,
        estimate_percent => 20,
        block_sample=> true,
        cascade=>true
    );
    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') into end_time from dual;
    dbms_output.put_line('analyze end   : ' || end_time);
    dbms_output.put_line('-----------------------------------');
end;
/


2. 分析全部 schema


declare
    start_time varchar2(21);
    end_time varchar2(21);
begin
    dbms_output.disable;
    dbms_output.enable(1000000);
    dbms_output.put_line('-----------------------------------');
    for owner in (select username from dba_users where username not in ('SYS','SYSTEM'))
    loop
        dbms_output.put_line('schema: '||owner.username);
        select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') into start_time from dual;
        dbms_output.put_line('analyze start : '||start_time);
        dbms_stats.gather_schema_stats(
            ownname => owner.username,
            estimate_percent => 20,
            block_sample=> true,
            cascade=>true
        );
        select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') into end_time from dual;
        dbms_output.put_line('analyze end   : '||end_time);
        dbms_output.put_line('');
    end loop;
    dbms_output.put_line('-----------------------------------');
end;
/

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

转载于:http://blog.itpub.net/22558114/viewspace-1097820/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值