我们可以在分析表的分区时使用并行性吗?

时间:2012-06-15 06:30:21

标签: oracle indexing database-partitioning

分析分区需要几个小时。是否有任何命令可以并行分析表的分区?

1 个答案:

答案 0 :(得分:1)

如果您使用DBMS_STATS收集统计信息,则可以选择几种方式。如果您明确调用DBMS_STATS.GATHER_TABLE_STATSDBMS_STATS.GATHER_INDEX_STATS,则可以使用degree参数来设置并行度。您还可以使用DBMS_STATS中的各种SET_*_PREFS例程来设置默认值,以按对象类型或整个数据库(SET_DATABASE_PREFS)设置默认的并行度。例如

DBMS_STATS.SET_DATABASE_PREFS('DEGREE', '10');
在后续调用DBMS_STATS.GATHER_TABLE_STATS时,

将为度数设置默认值10。或者您可以将度数参数用于GATHER_TABLE_STATS,如

DBMS_STATS.GATHER_TABLE_STATS(ownname => 'A_SCHEMA',
                              tabname => 'A_TABLE',
                              degree  => 10);

如果您正在使用ANALYZE来分析表 - 那么,您可能应该切换到DBMS_STATS,因为自从Oracle 9以来,ANALYZE已经过时,如果我没记错的话。 DBMS_STATS包有很多带有大量参数的例程,但大多数参数都有合理的默认值,所以不需要指定。

您可以尝试在dba.stackexchange.com

上重新发布此问题

分享并享受。