【发布时间】:2012-06-15 06:30:20
【问题描述】:
分析分区需要几个小时。是否有任何命令可以并行分析表的分区?
【问题讨论】:
-
您使用的是哪个命令:ANALYZE 还是 DBMS_STATS?
标签: oracle indexing database-partitioning
分析分区需要几个小时。是否有任何命令可以并行分析表的分区?
【问题讨论】:
标签: oracle indexing database-partitioning
如果您使用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 上重新发布此问题
分享和享受。
【讨论】: