show parameter cpu
begin
dbms_stats.gather_database_stats(
estimate_percent=>dbms_stats.auto_sample_size,
method_opt=>'for all columns size AUTO',
degree=>32,
cascade=>true,
no_invalidate=>false
);
end;
/

estimate_percent:采样行的百分比,取值范围[0.000001,100],null为全部分析,不采样。常量:DBMS_STATS.AUTO_SAMPLE_SIZE是默认值,由oracle决定最佳取采样值。

cascade:是否收集索引的信息,默认为FALSE。

no_invalidate:true:表示不进行游标失效动作,原有的shared cursor保持原有状态;false:表示将统计量对象相关的所有cursor全部失效;auto_invalidate:Oracle自己决定shared cursor失效动作。

SYS.DBMS_STATS.gather_database_stats

在这里插入图片描述
建议不要设置并行收集,该机制会造成数据库中产生过多活动会话,并对数据库产生严重负载压力。另还有收集时注意dgree参数的值。

exec dbms_stats.set_global_prefs('CONCURRENT','FALSE');
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐