1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

子查询引起的oracle数据库bug分析

子查询引起的Oracle数据库bug分析

我是本际云服务器推荐网的小编小本本,今天给大家带来一篇有关子查询引起的Oracle数据库bug分析的文章。

子查询引起的oracle数据库bug分析

报错现象

现象描述:使用PL/SQL连接数据库执行语句(语句见下图),并点击获取最后一页后抛出如下截图报错,客户端连接被中断。执行的语句信息如下,查询语句含多个子查询:

报错分析

看到上述报错的第一反应是在alert日志中搜索ORA-03113和ORA-03114关键字,但并未搜索到。于是查看是否有其它ORA-类报错抛出,发现有ORA-07445类报错。

进一步分析trc并查询MOS发现堆栈信息符合Bug20916723-Dump/Wrongresultswithadaptiveplanandcorrelatedsubqueriessharingsamecorrelatedcolumn。主要堆栈信息:evanvl

解决方案

方案1.升级至12.2.0.1或者更高版本

方案2.使用workaround:

SQL>conn/assysdba

SQL>altersystemsetoptimizer_adaptive_features=false;

optimizer_adaptive_features即时生效,无需重启数据库。本次选择解决方案2,optimizer_adaptive_features特性关闭后,再次执行上述SQL,不再抛出报错,连接也未中断,确认解决方案有效。

总结

Adaptive statistics features优化器自适应特性默认是打开的,该特性比较适合于一些OLAP类业务系统,因在这类系统中SQL的执行时间较长,且SQL比较复杂,优化比较麻烦,启用Adaptive statistics features可以带来好处。但在OLTP系统上建议关闭该特性,可以规避该特性引起的很多bug。在12.1中optimizer_adaptive_features一个参数控制所有优化器自适应特性。在12.2中Oracle引入了2个独立参数来控制optimizer_adaptive_features(optimizer_adaptive_plans和optimizer_adaptive_statistics),目的应该是为了更加灵活的,独立管理新功能。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5894.html