IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    12.2优化器和12.1优化器变化之处

    小荷发表于 2017-03-11 16:45:32
    love 0

    在oracle 12.2的优化器,相比12.1已经有一些细微的变化,当我们将数据库从12.1升级到12.2,或者从12.1之前的版本,升级到12.2.需要在优化器的一些参数上引起注意,因为这些参数已经发生了变化。

    在12.1中,有个统领全局的,是否启用自适应优化器参数,optimizer_adaptive_features。这个参数统领两大特性:自适应计划(adaptive plans)和自适应统计信息(adaptive statistics)。

    但optimizer_adaptive_features这个参数在12.2已经过期。自适应优化器的两大部分,自适应计划(adaptive plans)和自适应统计信息(adaptive statistics)将有2个独自的参数进行控制:

    optimizer_adaptive_plans 默认值为TRUE
    optimizer_adaptive_statistics 默认值为FALSE

    而自适应统计信息,默认被设置成了false,估计是很多人在12.1的时候,遭遇到了由于SQL执行计划指导(SQL Plan Directives,SPD)产生了过量动态采样的问题。

    可以见我之前的这篇文章《SQL Plan Directives与过量的动态采样》,在这篇文章中,我是建议在12.1中,禁用SPD产生新的directive,以及禁止SPD动态采样的。在12.2中,自适应统计信息(adaptive statistics)默认被关闭,也就是说,自适应统计信息所包含的3个功能:动态采样(Dynamic Statistics)、自动重优化(automatic reoptimization)、SPD都被默认关闭了。

    另外,在mos中有篇文档Recommendations for Adaptive Features in Oracle Database 12c (Doc ID 2187449.1),在这个文档中提到,建议为12.1打上patch 22652097和patch 21171382,这2个patch的作用如下:

    We recommend that upgrades to 12.1 adopt the 12.2 defaults. This may be done by applying the following patches for your version and platform:

    Patch 22652097 splits the parameter optimizer_adaptive_features into two, as above, and disables adaptive statistics.
    Patch 21171382 disables the automatic creation of extended statistics unless the optimizer preference AUTO_STAT_EXTENSIONS is set to ON.

    If you are already on 12.1, but are encountering performance problems, you may want to consider applying the above patches.

    那么,我们的升级场景可以分为如下:
    1. 从11.2或者更早的版本升级到12.2
    ==> 什么都不用动

    2. 从12.1升级到12.2
    2.1 如果已经打上patch 22652097和patch 21171382
    ==> 不需要做修改,
    ==> 升级到12.2后检查optimizer_adaptive_plans是否为true;optimizer_adaptive_statistics是否为false;AUTO_STAT_EXTENSIONS是否为off。

    2.2 如果没有打过patch 22652097和patch 21171382
    ==> 你需要取消在初始化参数中的optimizer_adaptive_features,因为这个参数已在12.2过期;
    ==> 取消之前可能设置过的关于_optimizer_dsdir_usage_control和_sql_plan_directive_mgmt_control的设置;
    ==> 检查optimizer_adaptive_plans是否为true;optimizer_adaptive_statistics是否为false;AUTO_STAT_EXTENSIONS是否为off

    参考:
    Recommendations for Adaptive Features in Oracle Database 12c (Doc ID 2187449.1)
    SQL Plan Directives与过量的动态采样
    Optimizer Adaptive Features in Oracle Database 12c Release 2



沪ICP备19023445号-2号
友情链接