关于Oracle数据库12c版本1中自适应功能的建议以及版本2中自适应功能的更改(Adaptive Adaptive Server,Adaptive Statistics and 12c SQL Pe

关于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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值