yugui321 发表于 2015-2-7 00:59:44

dbms_xplan.gather_table_stats对于分区表的问题

主机:HPUX 11
ORACLE VERSION:11203
问题:给大的分区表搜集统计信息,dbms_xplan.gather_table_stats的用法

在一次案例中,我使用了dbms_xplan.gather_table_stats这个包给分区表搜集统计信息,具体命令为:
  exec dbms_statS.gather_table_stats(ownname => 'xx',tabname  =>'xx',partname=>'xx_14',estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE,GRANULARITY => 'AUTO',cascade=>true,degree=>16);

该分区表的构成是以月为单位做成分区表,一个分区有100G,大约有14个分区,大小均在70G~100G之间
我对于该表开启了增量统计信息的备份:
exec DBMS_STATS.SET_TABLE_PREFS ('xx', 'xx','INCREMENTAL', 'TRUE');    ----- 会消耗sysaux
exec DBMS_STATS.SET_TABLE_PREFS ('xx', 'xx','PUBLISH', 'TRUE');

在收完xx_14之后,我发现xx_01~xx_13的分区表的统计信息也搜集


请问MACLEAN,这是因为打开了增量统计信息 还是GRANULARITY => 'AUTO'等参数导致的,还是说跟partition的类型有关
谢谢!!

因为我们还有一个大的3个分区的表,每个分区有大概700G,所以如果采取上述办法搜集一个分区的时候自动连带着另外两个分区的话,时间太长,对系统压力太大
请MACLEAN看下!
十分感谢

yugui321 发表于 2015-2-7 17:07:15

Anybody there?

Liu Maclean(刘相兵 发表于 2015-2-8 13:13:09

FYI

How does dbms_stats default granularity AUTO Work?
http://www.askmaclean.com/archives/how-does-dbms_stats-default-granularity-auto-work.html

不了峰 发表于 2015-2-9 11:12:58

Granularity 用于定义采集粒度,具体值的含义如下。
1、all :采集global ,partition,subpartiiton等粒度统计信息。
2、auto: 根据分区类型,由Oracle确定 统计信息采集粒度。
3、Partition:只采集partition粒度统计信息
4、Subpartition:只采集subpartition粒度统计信息
页: [1]
查看完整版本: dbms_xplan.gather_table_stats对于分区表的问题