Oracle统计收集小技巧
参考:基于Oracle的SQL优化
1.统计信息收集设置直方图的收集方式
exec dbms_stats.set_param('METHOD_OPT','FOR ALL COLUMNS SIZE REPEAT'); SELECT DBMS_STATS.GET_PARAM('METHOD_OPT') FROM DUAL;
全局设置
exec dbms_stats.set_global_prefs('METHOD_OPT','FOR ALL COLUMNS SIZE REPEAT');
2.设置单表收集策略
我们知道对于表变化超过10%的时候,Oracle才会自动进行统计信息收集,但是如果我们的一个核心分区表是按照天来进行分区的,数据每天都有更新,我们查询的数据又比较频繁,可能就会导致谓词越界,这个表我们希望每天都进行统计信息收集,那么我们可以修改表上的收集基数,那么我们仅仅需要将表的收集条件从10%修改为0,那么每天自动收集统计信息的时候,这个表都会自动的进行统计信息收集
exec dbms_stats.set_table_prefs('DBMON','T',STALE_PERCENT',0);