关于Oracle数据库12c版本1中自适应功能的建议以及版本2中自适应功能的更改(Adaptive Adaptive Server,Adaptive Statistics and 12c SQL Performance)(文档ID 2312911.1)
自适应功能是一组功能,可使优化程序对执行计划进行运行时调整,并根据先前执行的结果调整未来执行的计划。
12.2中自适应特征的变化
自适应功能分为两部分:
1、自适应计划 - 自适应计划允许计划在执行期间更改。
2、自适应统计 - 自适应统计允许根据先前执行的结果构建计划。某些更改可能会通过SQL计划指令或自动创建扩展统计信息在数据字典中持久存在。
在12.1中,两个组件由动态参数optimizer_adaptive_features控制。此参数默认为TRUE。当optimizer_features_enable设置为12.1.0.1或更高版本时,由该参数控制的所有自适应功能都被开启。
在12.2中,参数optimizer_adaptive_features已被废弃。自适应特征由两个新参数optimizer_adaptive_plans和optimizer_adaptive_statistics控制。 optimizer_adaptive_plans参数控制优化器是否创建自适应计划,默认值为TRUE。当optimizer_features_enable设置为12.1.0.1或更高版本时,将启用由optimizer_adaptive_plans控制的所有功能。 optimizer_adaptive_statistics参数控制优化器是否使用自适应统计信息并且默认值为FALSE。这些默认值被用来着重实现稳定的SQL执行计划。
注意:在12.2中,参数optimizer_adaptive_statistics不管扩展统计信息的自动创建。而是优先通过表级统计AUTO_STAT_EXTENSIONS来控制,默认为OFF。
提示:如果规划现在或将来升级到12.2,请查看以下内容:优化器自适应功能的最佳实践升级到Oracle数据库12c第2版https://support.oracle.com/epmos/faces/DocumentDisplay?parent=DOCUMENT&sourceId=2312911.1&id=2295798.1
在12.1中实现12.2自适应特征行为
12.2中的自适应特征变化在12.1中通过一对修复来实现:
Bug 22652097将参数optimizer_adaptive_features分成两个,如上所述,并禁用自适应统计信息。
Bug21171382禁用自动创建扩展统计信息,除非优化器首选项AUTO_STAT_EXTENSIONS设置为ON。
对12.1的建议
当存在以下情况时,Oracle建议采用12.2默认值:
从早期版本升级到12c版本1
如果您已经在12c版本1,但遇到性能问题
启用这些更改的推荐方法是应用October 2017数据库主动捆绑修补程序(BP)或更高版本,然后手动启用修订。但在本BP之前,或者对于PSU的用户,也可以使用补丁来实现。
警告:在已经运行一段时间12.1的环境中启用修复22652097可能立即导致计划更改。我们建议您先进行性能测试。
使用Database Proactive Bundle Patch实现
2017年10月数据库主动捆绑补丁(BP)<Patch 26635880>具有Bug 22652097和Bug 21171382的修复程序。它还包括针对Bug 20243268的修复程序,它与Bug 22652097的修订进行交互。默认情况下,这些修补程序将被禁用,除非安装检测到修补程序已经安装,而是由BP安装代替,或者手动启用。
注意:在安装BP之前,删除任何单独的修补程序(22652097,21171382和20243268)将阻止自动检测,要求手动启用修补程序。
要手动启用或禁用修补程序,请使用fix控件26664361覆盖自动检测。 (注意:修正控件26664361仅在BP中可用。)
修复控件有三个标志:
1 = act like Patch 22652097 is installed
2 = act like Patch 21171382 is installed
4 = act like Patch 20243268 is installed
当安装BP时,可以检查fix 26664361的当前设置,如下所示:
select value
from v$system_fix_control
where bugno = 26664361;
过程
1、计算要被视为“已安装”的修补程序的标志的总和,产生0-7的值。使用固定控制字符串'26664361:n',其中n是标志的总和。
2、如果标志4为打开(像Patch 20243268已安装),请将步骤1中的修复控制字符串'16732417:1'和'20243268:1'添加到修复控制字符串。如果标志4为关闭,请使用'16732417:0 '和'20243268:0'。请注意,修复控制字符串应该用逗号分隔:例如'26664361:4','16732417:1','20243268:1'或'26664361:0','16732417:0','20243268:0'。
3、将“_fix_control”参数设置到pfile/spfile中的新修补程序控制字符串。如果有的话,请小心不要删除其他修复控制项。
4、如果标志1处于打开状态,请考虑删除optimizer_adaptive_features参数 - 可能将optimizer_adaptive_plans设置为相同的值。
如果标志1关闭,请考虑删除optimizer_adaptive_plans和optimizer_adaptive_statistics参数 - 可能将optimizer_adaptive_features设置为optimizer_adaptive_plans的旧值。
5、重新启动实例。
6、使用sqlplus连接到SYS(作为sysdba)并运行脚本execstat.sql:
connect / as sysdba
@?/rdbms/admin/execstat.sql
修复控制设置示例
DBA已经安装了所有三个补丁;使用7(1 + 2 + 4):
设置“_fix_control”='26664361:7','16732417:1','20243268:1'
DBA仅安装补丁22652097和21171382;使用3(1 + 2),而不是7:
设置“_fix_control”='26664361:3','16732417:0','20243268:0'
要禁用所有这些修补程序(就像未安装修补程序),请使用0:
设置“_fix_control”='26664361:0','16732417:0','20243268:0'
为了获得最佳效果,仅在pfile / spfile中更改修复控件26664361,而不是在内存中。这样可以避免意外的惊喜,因为虽然修改控件可以在内存中更改,但是一些部件在重新启动之前才会生效。
实施使用补丁
12.2自适应功能更改可以通过安装Patch 22652097和Patch 22652097来实现。
注意:虽然这种方法可以实现拆分,但是Patch 22652097很大,并且与许多其他补丁有冲突;在实践中很难及时获得正确的合并补丁。因此,强烈建议应用2017年10月的BP。
过程
1、如果设置,请从pfile/spfile中删除optimizer_adaptive_features参数。
2、打上补丁22652097和补丁21171382。
3、如果optimizer_adaptive_features已设置为FALSE,请设置optimizer_adaptive_plans = FALSE。
警告:与22652097修复程序的BP版本不同,Patch 22652097完全删除了optimizer_adaptive_features参数。如果您留下该参数,尝试启动数据库实例将失败并显示错误。您将需要编辑您的pfile或spfile以删除参数以更正此问题。
当通过连接到具有SYS用户的空闲实例作为sysdba,从spfile命令发出create pfile,编辑pfile,然后从pfile命令发出create spfile时,可以编辑spfile。
提示:如果您的特定版本和平台不存在上述修补程序,或者您看到与现有修补程序发生冲突,请与支持部门联系以请求修补程序。
在Windows中实现
Bug 22652097和Bug 21171382都包含在Windows Bundle Patch 170831中并启用。
过程
1、如果设置了,请从pfile/spfile中删除optimizer_adaptive_features参数。
2、打上Windows Bundle Patch 170831或更高版本。
3、如果optimizer_adaptive_features已设置为FALSE,请设置optimizer_adaptive_plans = FALSE。
从11g升级到12.1(Windows除外)
Oracle建议在从11g升级到12.1时立即启用12.2自适应功能的更改。这最好通过安装十二月十二号的12.1.0.2并将26664361修复控件设置为3来完成。
过程
安装12.1.0.2和2017年10月份的主动捆绑补丁(或更高版本)。
在pfile/spfile中设置参数“_fix_control”='26664361:3'。
使用sqlplus连接到SYS(作为sysdba)并运行脚本execstat.sql:
connect / as sysdba
@?/rdbms/admin/execstat.sql
关于Oracle数据库12c版本1中自适应功能的建议以及版本2中自适应功能的更改(Adaptive Adaptive Server,Adaptive Statistics and 12c SQL Pe
最新推荐文章于 2023-09-08 09:22:20 发布