的OPTIMIZER_FEATURES_ENABLE初始化参数(或暗示)控制一组优化器相关的功能,这取决于该数据库的版本。
该参数接受与发行版号相对应的有效字符串值的列表之一,例如11.2.0.2或12.2.0.1。您可以使用此参数在数据库升级后保留优化器的旧行为。例如,如果将Oracle Database 12c第1版(12.1.0.2)升级到Oracle Database 12c第2版(12.2.0.1),则OPTIMIZER_FEATURES_ENABLE参数的默认值将从更改12.1.0.2为12.2.0.1。
为了向后兼容,您可能不希望由于新版本中的新优化器功能而更改执行计划。在这种情况下,可以设置OPTIMIZER_FEATURES_ENABLE为早期版本。如果升级到新版本,如果你想启用新版本中的功能,那么你就不会需要明确设置OPTIMIZER_FEATURES_ENABLE初始化参数。
警告:
Oracle建议不要将OPTIMIZER_FEATURES_ENABLE初始化参数显式设置为早期版本。为避免执行计划更改可能导致SQL性能下降,请考虑改用SQL计划管理。
假设条件
本教程假定以下内容:
- 您最近将数据库从Oracle Database 12c第1版(12 1.0.2)升级到Oracle Database 12c第2版(12.2.0.1)。
- 您要保留早期版本中的优化器行为。
要为特定版本启用查询优化器功能:
- 使用适当的特权登录到数据库,然后查询当前的优化器功能设置。
例如,运行以下SQL * Plus命令:
SQL> SHOW PARAMETER optimizer_features_enable NAME TYPE VALUE ------------------------------------ ----------- -------- optimizer_features_enable string 12.2.0.1 - 在实例或会话级别设置优化器功能设置。
例如,运行以下SQL语句将优化程序版本设置为
12.1.0.2:SQL> ALTER SYSTEM SET OPTIMIZER_FEATURES_ENABLE='12.1.0.2';前面的语句恢复了Oracle Database 12c第1版(12.1.0.2)中存在的优化程序功能。
也可以看看:
- “ 管理SQL计划基准 ”
- 《 Oracle数据库参考》以了解在设置
OPTIMIZER_FEATURES_ENABLE为不同的发行版值 时启用的优化器功能
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




