0

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

4

1 回答 1

1

如果您DBMS_STATS用来收集统计数据,您有几个选择。如果您要进行显式调用,DBMS_STATS.GATHER_TABLE_STATS并且DBMS_STATS.GATHER_INDEX_STATS可以使用该degree参数来设置并行度。您还可以使用SET_*_PREFSDBMS_STATS 中的各种例程设置默认并行度,按对象类型或整个数据库 ( 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上重新发布此问题

分享和享受。

于 2012-06-15T10:52:44.377 回答