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)
12.1.0.2自适应特性导致SQL性能下降的更多相关文章
- sqlt 之 分析 DB upgrade 导致SQL 性能下降 的方法 xplore
https://blog.csdn.net/lukeUnique/article/details/79331779 https://mauro-pagano.com/2014/10/27/when-t ...
- 统计信息不准导致sql性能下降
某局的预生产系统一条sql语句20分钟执行完,上线以后2个小时没执行出来,在预生产执行计划是hash join在生产是nested loop,通过awr基表wri$_optstat_tab_histo ...
- Oracle 11g 中SQL性能优化新特性之SQL性能分析器(SQLPA)
Oracle11g中,真实应用测试选项(the Real Application Testing Option)提供了一个有用的特点,叫SQL性能分析器(SQL Performance Analyze ...
- oracle 12.1.0.2的mgmt 导致的ORA-01017 bug
两节点12c RAC,在两节点上export ORACLE_SID再sqlplus / as sysdba都正常登录,然而Commvault通过service_name方式(sqlplus sys/p ...
- Failed RMAN Catalog Upgrade from 11.2.0.2 to 12.1.0.2 ( ORA-02296 RMAN-06004 )
Failed RMAN Catalog Upgrade from 11.2.0.2 to 12.1.0.2 ( ORA-02296 RMAN-06004 ) 由于后期使用12c的数据库,需要对现有 ...
- SQL Server 优化器特性导致的内存授予相关BUG
我们有时会遇到一些坑,要不填平,要不绕过.这里为大家介绍一个相关SQL Server优化器方面的特性导致内存授予的相关BUG,及相关解决方式,也顺便回答下邹建同学的相关疑问. 问题描述 一个简单的查询 ...
- Atitit jquery 1.4--v1.11 v1.12 v2.0 3.0 的新特性
Atitit jquery 1.4--v1.11 v1.12 v2.0 3.0 的新特性 1.1. Jquery1.12 jQuery 2.2 和 1.12 新版本发布 - OPEN资讯.h ...
- Oracle 12.1.0.2 New Feature翻译学习【In-Memory column store内存列存储】【原创】
翻译没有追求信达雅,不是为了学英语翻译,是为了快速了解新特性,如有语义理解错误可以指正.欢迎加微信12735770或QQ12735770探讨oracle技术问题:) In-Memory Column ...
- Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN
Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...
随机推荐
- Mac使用zsh导致maven命令无效的解决方案
第一步: vim ~/.zshrc 第二步:在.zshrc末尾加上 source ~/.bash_profile: 保存推出了 第三步 source ~/.bash_profile
- (转)blkid命令 获取文件系统类型、UUID
blkid命令 获取文件系统类型.UUID 原文:http://www.cnblogs.com/dkblog/archive/2011/08/30/2159630.html 在Linux下可以使用b ...
- Kudu-Master的设计
不多说,直接上干货! http://blog.csdn.net/lookqlp/article/details/70858466
- DEDE日期调用小插件
在日期文本框里面,点击的时候,下面出来一个和万年历一样的日期选择表,在dede里面,有一个现成的js小插件,直接调用就OK了... <input type="text" on ...
- URAL 1142——Relations——————【dp】
A - Relations Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submi ...
- .net iis6中配置伪静态
1.右键点击 要设置网站的网站 2.属性 ——>主目录 ——>配置——> 3.如右侧窗口,找到 .aspx 扩展名——>编辑——>复制 可执行文件的路径——>关闭 ...
- ADO.NET的主要对象
ADO.NET主要分为五个对象: 1)Connection对象:用来连接程序与数据库.没有利用连接对象将数据库打开,是无法从数据库中取得数据的.Close和Dispose的区别,Close之后还可以用 ...
- 显示器分辨率不同,部分winform控件在其他机器上显示不全
在开发机器上效果如下: 而到其他电脑上效果如下: 解决办法: 将窗体的AutoScaleMode属性设置为None,尝试一下,应该可以了. 关于AutoScaleMode的属性,可以参考 http:/ ...
- SublimeText插件 : sass语法高亮
安装 :sublime中安装sass插件和sass build插件 就可以高亮显示sass 步骤:安装 sass插件和sass build (安装过程不细说) 步骤2:打开.sass文件,进行以下设 ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(9)、空间数据的容器-地图MapView
1.前言 在上一篇内容里介绍了 关于ArcGIS Android开发的未来(“Quartz”版Beta)相关内容,期间也提到了关于API接口的重构,开发思路的调整,根据2015UC资料也可以知道新版预 ...