Oracle快速收集全库统计信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle快速收集全库统计信息相关的知识,希望对你有一定的参考价值。

环境:Oracle 11.2.0.4
采用并行的方式,快速收集全库统计信息,多用于跨版本升级之后,对全库的统计信息重新进行快速收集:

--开启计时
set timing on

--设置并行收集
exec dbms_stats.set_global_prefs(‘CONCURRENT‘,‘TRUE‘);
 
--开始收集全库统计信息
begin
dbms_stats.gather_database_stats(
ESTIMATE_PERCENT=>DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt => ‘for all indexed columns‘, cascade=>true, degree=>120);
end;
/
 
--关闭并行收集
exec dbms_stats.set_global_prefs(‘CONCURRENT‘,‘FALSE‘);

注意degree的值并不是设置越高就越快,同时要根据实际CPU具体情况来设置。

本文来自同事的经验分享,这里主要用到dbms_stats包的set_global_prefs和gather_database_stats过程。详见官档描述:


以上是关于Oracle快速收集全库统计信息的主要内容,如果未能解决你的问题,请参考以下文章

oracle11g怎么不自动收集统计信息

oracle中的统计信息问题

oracle 12c 关闭统计信息收集和启用统计信息收集

[统计信息系列7] Oracle 11g的自动统计信息收集

[统计信息系列7] Oracle 11g的自动统计信息收集

Oracle里收集与查看统计信息的方法