今天和一个朋友一起给一个组合分区重建索引,原因是集群因子比表的数据行还要多,到底集群因子高低,对性能有没有影响暂且不说,在操作中发现重建索引后,使用
Analyze table ticapp001.TTCGTR010 PARTITION ("PTCGTR0100_20101206" ) compute statistics;
Analyze table ticapp001.TTCGTR010 SUBPARTITION ("PTCGTR0100_20101206_BJS" ) compute statistics;
分析后,集群因子并没有变化,google后才发现,在对分区表进行分析时,是要是用dbms_stats,即
exec dbms_stats.GATHER_TABLE_STATS('TICAPP001','TTCGTR010',ESTIMATE_PERCENT=>dbms_stats.auto_sample_size,CASCADE=>TRUE);
对于使用哪个去收集statistics﹐有一个原则﹐凡是与cost-based optimizer相关的statistics﹐都应通过dbms_stats包收集。与cost-based optimizer无关的statistics(如empty blocks﹐average space等)都应通过analyze语句去收集。
之所以要用dbms_stats包去替代analyze收集优化器statistics﹐是因为dbms_stats包能收集并行statistics和分区对象的全局statistics。
生产环境下集群因子很高,请问相公,这样正常么?有没有隐患呢?
|
|