12.1.0.2自适应特性导致SQL性能下降
背景介绍
在升级到12.1.0.2.0数据库版本后,在使用12c中引入的自适应特性默认配置的情况下,可能引起SQL性能的下降。
问题现象
升级到12.1.0.2.0后,SQL语句性能可能出现下降。
影响的产品及版本
Oracle 12.1.0.2.0
原因和触发条件
Oracle 12.1.0.2版本上,增加了2个自适应特性:自适应计划和自适应统计信息,这两个特性默认都是开启的,通过一个参数optimizer_adaptive_features控制,某些场景下可能会导致SQL语句性能问题发生;
- 自适应特性是一组能够使优化器对执行计划进行运行时调整的功能,并根据以前执行的结果调整将来执行的计划。
1. 自适应计划(Adaptive Plans)-允许在执行过程中更改计划。
2. 自适应统计信息(Adaptive Statistics)-允许基于先前执行的结果构建计划。可以通过SQL Plan Directives或自动创建扩展统计数据,在数据字典中保存一些更改数据。
- 在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的标准,升级12.1的自适应特性,您需要安装补丁:
Patch 22652097
将参数optimizer_adaptive_features废弃,并分成2个参数optimizer_adaptive_plans和optimizer_adaptive_statistics,分别用于控制自适应执行计划和自适应统计信息,默认启用自适应执行计划,禁用自适应统计信息;
Patch 21171382
禁用扩展统计信息自动生成,除非参数auto_stat_extensions被设置为ON。
如果你的环境是12.1,且遇到上述问题,您需要考虑安装以上2个补丁;如果上述补丁不存在于您的特定版本和平台,或者与现有补丁的冲突,请联系支持以请求修补程序。
参考文档
Recommendations for Adaptive Features in Oracle Database 12c (Adaptive Statistics & 12c SQL Performance) (Doc ID 2187449.1)
最新文章
- 人人都是 DBA(III)SQL Server 调度器
- sublime配置java编译环境
- ArcGIS Viewer for Flex中引入google map作底图
- solrcloud使用中遇到的问题及解决方式
- Java-try-catch-finally
- IOS-用动画组制作花瓣掉落效果(另附iOS动画图表)
- vim calendar插件配置
- HTML5学习笔记<;二>;:元素,属性,格式化
- [LeetCode] 6. Z 字形变换
- Python深入理解yield
- 初学python笔记----字符串
- Effective java 43返回零长度的数组或者集合而不是null
- 容器工厂(原型&;单例)
- <;转载>; VUE项目中CSS管理
- 3、Sql-Ora-01033:oracle initialization or shutdown in progress
- Maven构建的Spring项目需要哪些依赖?
- Java AtomicBoolean (Java代码实战-008)
- 解决opencv和mfc同时使用导致memory leak
- hdoj4283 You Are the One
- 学习笔记之YAML