我们在收集普通表的时候,经常使用Analyze来收集一下表的统计信息,但是在分区表这样做是有问题的,所以我们要用dbms_stats.gather_table_stats来收集分区信息,这样做的好处1. 传统的analyze的方式对收集分区表统计信息不准确。2. 可以只收集某分区的统计信息
这是统计前的信息,在这个分区表里面,2013和2014年随机生成了大约10万条数据。
现在对分区表某一个分区进行统计
exec dbms_stats.gather_table_stats(ownname => 'SUYS',tabname => 'RANGE_PART_TAB',partname =>'p_201312', estimate_percent => 10,method_opt=> 'for all indexed columns',cascade=>TRUE) ;