背景介绍

在升级到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)

最新文章

  1. 人人都是 DBA(III)SQL Server 调度器
  2. sublime配置java编译环境
  3. ArcGIS Viewer for Flex中引入google map作底图
  4. solrcloud使用中遇到的问题及解决方式
  5. Java-try-catch-finally
  6. IOS-用动画组制作花瓣掉落效果(另附iOS动画图表)
  7. vim calendar插件配置
  8. HTML5学习笔记<二>:元素,属性,格式化
  9. [LeetCode] 6. Z 字形变换
  10. Python深入理解yield
  11. 初学python笔记----字符串
  12. Effective java 43返回零长度的数组或者集合而不是null
  13. 容器工厂(原型&单例)
  14. <转载> VUE项目中CSS管理
  15. 3、Sql-Ora-01033:oracle initialization or shutdown in progress
  16. Maven构建的Spring项目需要哪些依赖?
  17. Java AtomicBoolean (Java代码实战-008)
  18. 解决opencv和mfc同时使用导致memory leak
  19. hdoj4283 You Are the One
  20. 学习笔记之YAML

热门文章

  1. php和java的区别
  2. Myeclipse修改jdk版本流程
  3. Javascript 对象(Object)
  4. C# 解决 邮件发送Excel附件后,excel处于锁定状态
  5. sqlmap 命令详解(自备速查)
  6. jQuery中表单的常用操作(全选、反选)
  7. 自写Jq动画载入插件
  8. 从0到1构建适配不同端(微信小程序、H5、React-Native 等)的taro + dva应用
  9. Flask文件目录----- db文件
  10. Linux,MD5