Oracle 19c 设置并行执行多表统计信息收集

degree 仅对单表执行并行统计,例如:

exec dbms_stats.gather_table_stats(ownname=>'<owner_name>',tabname=>'<table_name>',cascade=>true,degree=><degree_number>,force=>true);

对多表设置并行收集的方法如下:

-- 检查当前并发设置
select dbms_stats.get_prefs('CONCURRENT') from dual;

-- 手动收集时并发有效
exec dbms_stats.set_global_prefs('CONCURRENT','MANUAL');

-- 自动收集时并发有效
exec dbms_stats.set_global_prefs('CONCURRENT','AUTOMATIC');

-- 手动和自动收集时并发都有效
exec dbms_stats.set_global_prefs('CONCURRENT','ALL');

-- 关闭并发
exec dbms_stats.set_global_prefs('CONCURRENT','OFF');

备注 1 : 执行统计信息收集的用户应显式授权如下权限:create job/manage scheduler/manage any queue,另外需注意 job_queue_processes 设置不要太高。

备注 2 : Oracle 11g 版本只有 true ( 启用并发 )和 false ( 关闭并发 )两个选项。

示例:

SQL> select dbms_stats.get_prefs('CONCURRENT') from dual;

DBMS_STATS.GET_PREFS('CONCURRENT')
--------------------------------------------------------------------------------
OFF

SQL> exec dbms_stats.set_global_prefs('CONCURRENT','MANUAL');

PL/SQL procedure successfully completed.

SQL> exec dbms_stats.set_global_prefs('CONCURRENT','AUTOMATIC');

PL/SQL procedure successfully completed.

SQL> exec dbms_stats.set_global_prefs('CONCURRENT','ALL');

PL/SQL procedure successfully completed.

SQL> exec dbms_stats.set_global_prefs('CONCURRENT','OFF');

PL/SQL procedure successfully completed.

SQL> 
 

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值