oracle收集统计信息无法开并行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle收集统计信息无法开并行相关的知识,希望对你有一定的参考价值。

Oracle 在收集统计信息时可以使用并行执行以提高效率,但并行收集统计信息需要满足以下几个条件:

1. 数据库版本:并行收集统计信息要求 Oracle 数据库的版本为 Enterprise Edition。

2. 表分区:并行收集统计信息需要对分区表进行操作。

3. 资源限制:如果数据库实例的 CPU 或内存资源受限,就无法开启并行收集统计信息的选项。

如果以上条件都满足,但是仍然无法开启并行收集统计信息,则可能是由于以下原因:

1. 表过小:如果表的大小比较小,Oracle 可能会认为并行收集统计信息不会提高效率,因此自动禁用了并行模式。

2. 并发度过高:如果并发度过高,也会导致无法启用并行收集统计信息。并发度指的是同时运行在系统上的进程数,如果并发度过高,可能会影响系统性能。

3. LOCKED状态:如果在表上存在锁定,则也无法在该表上使用并行收集统计信息,因为其他会话正在使用该表。

4. 用户权限:如果用户没有执行 "ALTER TABLE" 和 "GRANT" 等命令的权限,则无法使用并行收集统计信息。

综上所述,无法开启并行收集统计信息可能是由于多种因素导致的,需要根据具体情况进行排查和解决。
参考技术A 1 可以开并行
2 因为在Oracle 12c版本以后,收集统计信息默认是并行的,如果不开启并行,可能是由于数据库设置或者其他原因导致无法开启并行。

3 如果遇到无法开启并行的情况,可以通过检查数据库设置、查看数据库日志以及使用DBMS_STATS.SET_*_PREFS函数来解决问题。
同时也可以考虑升级数据库版本或者联系Oracle技术支持获取帮助。
参考技术B 原因是oracle收集统计信息的过程中,会对数据表进行锁定,从而阻止其他进程对表的访问,这样就无法开启并行。

以上是关于oracle收集统计信息无法开并行的主要内容,如果未能解决你的问题,请参考以下文章

Oracle快速收集全库统计信息

DBMS_STATS并行和并发收集统计信息

Oracle 11g系统自己主动收集统计信息的一些知识

oracle11g怎么不自动收集统计信息

oracle 12c 关闭统计信息收集和启用统计信息收集

oracle中的统计信息问题