分析分区需要几个小时。是否有任何命令可以并行分析表的分区?
答案 0 :(得分:1)
如果您使用DBMS_STATS
收集统计信息,则可以选择几种方式。如果您明确调用DBMS_STATS.GATHER_TABLE_STATS
和DBMS_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
上重新发布此问题分享并享受。