zoukankan      html  css  js  c++  java
  • Oracle修改查询优化器版本

    查询优化器参数optimizer_features_enable

    在每个数据库版本中,Oracle都会在查询优化器中引入或启用新的特性。

    如果在升级到一个新的版本后希望保留查询优化器的行为,可以通过设置这个参数或语句级别使用hint。

    不同版本优化器的差异https://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams168.htm#REFRN10141

    SQL> select value from v$parameter_valid_values where name ='optimizer_features_enable';

    VALUE
    --------------------------------------------------------------------------------
    8.0.0
    8.0.3
    8.0.4
    8.0.5
    8.0.6
    8.0.7
    8.1.0
    8.1.3
    8.1.4
    8.1.5
    8.1.6

    VALUE
    --------------------------------------------------------------------------------
    8.1.7
    9.0.0
    9.0.1
    9.2.0
    9.2.0.8
    10.1.0
    10.1.0.3
    10.1.0.4
    10.1.0.5
    10.2.0.1
    10.2.0.2

    VALUE
    --------------------------------------------------------------------------------
    10.2.0.3
    10.2.0.4
    10.2.0.5
    11.1.0.6
    11.1.0.7
    11.2.0.1
    11.2.0.2
    11.2.0.3
    11.2.0.4
    12.1.0.1
    12.1.0.2

    VALUE
    --------------------------------------------------------------------------------
    12.2.0.1
    12.2.0.1.1

    35 rows selected.

    很多人会遇到11g升级到12c后,报表及ETL性能严重下降

    检查SQL执行计划,发现同一个SQL,12c生成的执行计划跟11g的执行计划差异很大。

    把参数 OPTIMIZER_FEATURES_ENABLE 调回11g之后,报表及ETL的性能问题消失。因此怀疑是Oracle 12c优化器的问题导致

    SQL>show parameter optimizer_features_enable

     

    ALTER SYSTEM SET optimizer_features_enable = '11.2.0.4';
  • 相关阅读:
    Lucene
    SQL优化以及索引
    Mysql优化
    RocketMQ
    RocketMQ
    Session共享
    Linux安装Nginx
    初识nginx
    跨域,防止表单重复提交
    HttpClient案例
  • 原文地址:https://www.cnblogs.com/zhm1985/p/13185969.html
Copyright © 2011-2022 走看看