分区需要几个小时。是否有任何命令可以并行分析表的分区?
如果您使用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的调用中将度数设置为默认值 10。GATHER_TABLE_STATS。 或者你可以只使用度参数来GATHER_TABLE_STATS,如
DBMS_STATS.GATHER_TABLE_STATS(ownname => 'A_SCHEMA',
tabname => 'A_TABLE',
degree => 10);
如果您使用ANALYZE
来分析表-好吧,如果我没记错的话,您可能应该改用DBMS_STATS因为ANALYZE自Oracle 9以来已经过时了。 DBMS_STATS
包有很多例程和很多参数,但大多数参数都有合理的默认值,因此不需要指定。
您可以尝试在 dba.stackexchange.com 上重新发布此问题
分享和享受。