版本11gR2中引入cursor sharing游标共享和mutex互斥锁增强的一些特性,而这些特性也带来了一些问题(主要体现在版本11.2.0.1和11.2.0.2上,11.2.0.3上基本已经修复)。 Cursor Obsolescence游标废弃是一种SQL Cursor游标管理方面的增强特性,该特性启用后若parent cursor父游标名下的子游标child cursor总数超过一定的数目,则该父游标parent cursor将被废弃,同时一个新的父游标将被开始。 这样做有2点好处:

  • 避免进程去扫描长长的子游标列表child cursor list以找到一个合适的子游标child cursor
  • 废弃的游标将在一定时间内被age out,其占用的内存可以被重新利用

实际在版本10g中就引入了该Cursor Obsolescence游标废弃特性,当时child cursor 的总数阀值是1024, 但是这个阀值在11g中被移除了,这导致出现一个父游标下大量child cursor即high version count的发生;由此引发了一系列的版本11.2.0.3之前的cursor sharing 性能问题,主要症状是版本11.2.0.1和11.2.0.2上出现大量的Cursor: Mutex S 和 library cache lock等待事件。 增强补丁Enhancement patch《Bug 10187168 - Enhancement to obsolete parent cursors if VERSION_COUNT exceeds a threshold》就该问题引入了新的隐藏参数_cursor_obsolete_threshold(Number of cursors per parent before obsoletion.),该"_cursor_obsolete_threshold"参数用以指定子游标总数阀值,若一个父游标的child cursor count<=>version count高于"_cursor_obsolete_threshold",则触发Cursor Obsolescence游标废弃特性。   注意版本11.2.0.3中默认就有"_cursor_obsolete_threshold"了,而且默认值为100。   对于版本11.1.0.7、11.2.0.1和11.2.0.2则都有该Bug 10187168的bug backport存在,从2011年5月开始就有相关针对的one-off backport补丁存在。 但是这些one-off backport补丁不使用"_cursor_obsolete_threshold"参数。在版本11.1.0.7、11.2.0.1和11.2.0.2上需要设置合适的"_cursor_features_enabled"(默认值为2)参数,并设置必要的106001 event,该event的level值即是child cursor count的阀值,必须设置该106001事件后该特性才生效。 但是请注意 "_cursor_features_enabled"参数需要重启实例方能生效。而"_cursor_obsolete_threshold"参数和106001 event则可以在线启用、禁用。 对于不同的版本而言,一般推荐打上最新的PSU补丁,并根据补丁的README提示或者咨询Oracle Support获得关于该版本上Cursor Obsolescence问题的信息: 针对不同版本设置 "_cursor_features_enabled"+106001 event的方法:

版本11.1.0.7SQL> alter system set "_cursor_features_enabled"=18 scope=spfile;System altered.SQL> alter system set event='106001 trace name context forever,level 1024' scope=spfile;System altered.并重启实例版本11.2.0.1SQL> alter system set "_cursor_features_enabled"=34 scope=spfile;System altered.SQL> alter system set event='106001 trace name context forever,level 1024' scope=spfile;System altered.版本11.2.0.2SQL> alter system set "_cursor_features_enabled"=1026 scope=spfile;System altered.SQL> alter system set event='106001 trace name context forever,level 1024' scope=spfile;System altered.11gR2 Experience -> If using cursor_sharing = “FORCE” or “SIMILAR”
1) ORA-600 errors as workload increases [kkspsc0: basehd]
or [kglLockOwnersListAppend-ovf] - applied patches to address
2) AWR showing -> cursor: mutex S and library cache lock
1. Download and apply the 11.2.0.2.3PSU Patch 11724916
2. Enable event 106001 to address Bug 10187168.
To enable the fix "_cursor_features_enabled" needs to be set
3) Oracle 11.2.0.2.2 PSU (Patch Set Update) includes new parameters that you can tweak
based on workload characteristics. Even more fixes have been added
Note: 10411618 - Enhancement to add different "Mutex" wait schemes [ID 10411618.8]
4) 11.2.0.3 Has many Mutex enhancement’s106001 level
The level is used to specify the maximum number of child cursors
that a parent can have before we obsolete
the parent cursor and create a new parent.
Doing the above can help reduce mutex waits,
memory consumption and other side effects seen when we see
many child cursors for a given parent.

题外话是11.2.0.3中的Mutex增强了很多,不要再跟着初学者论坛的那帮家伙一起愚蠢地大喊:"虽然版本升级 8i=>9i=>10g=>11g=>12c,但是我觉得oracle里面基础、核心的东西一直都没变了"这种神话了, 你一直浮游在Oracle的表面怎么可能知道Kernel到底有多大的变化?!!

转载于:https://www.cnblogs.com/macleanoracle/archive/2013/03/19/2968375.html

11gR2游标共享新特性带来的一些问题以及_cursor_features_enabled、_cursor_obsolete_threshold和106001 event...相关推荐

  1. 盘点 Oracle 11g 中新特性带来的10大性能影响

    盘点 Oracle 11g 中新特性带来的10大性能影响 原创 2017-08-02 盖国强 数据和云 Oracle的任何一个新版本,总是会带来大量引人瞩目的新特性,但是往往在这些新特性引入之初,首先 ...

  2. Servlet 3.0 新特性概述

    Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若 ...

  3. Oracle 19c 新特性:ADG的自动DML重定向增强读写分离

    在前面的文章<Oracle 19c 十大新特性一览>中,我们曾经提到 Oracle 19c的一个重要增强,就是ADG的自动DML转发: 这个新特性的功能是:将偶然发送到ADG上的DML操作 ...

  4. 入微:探究文档中找不到的12c并行索引扫描新特性

    杨廷琨,网名 yangtingkun 云和恩墨技术总监,Oracle ACE Director,ACOUG 核心专家 Oracle在12c之前对于索引范围扫描是没有办法并行执行的,从12.1开始,Or ...

  5. oracle dataguard详解,Oracle 19c 新特性详解:DataGuard 中ADG的自动DML重定向

    Oracle 19c 新特性详解:DataGuard 中ADG的自动DML重定向 在前面的文章<Oracle 19c 十大新特性一览>中,我们曾经提到 Oracle 19c的一个重要增强, ...

  6. 今晚直播,你该了解的MySQL 8.0 SQL优化新特性

    周四见   公开课系列 We,知数堂 习惯用实力介绍自己-我们只分享干货 重磅福利来袭 2018年8月9日,20:30-22:00 周四见 不见不散! 郑 松 华 知数堂<SQL优化>课程 ...

  7. 和Oracle差距越来越小,你该了解的MySQL 8.0 SQL优化新特性

    周四见   公开课系列 We,知数堂 习惯用实力介绍自己-我们只分享干货 重磅福利来袭 2018年8月9日,20:30-22:00 周四见 不见不散! 郑 松 华 知数堂<SQL优化>课程 ...

  8. Oracle 19c 新特性:ADG的自动DML重定向增强读写分离--ADG_REDIRECT_DML

    Oracle 19c 新特性:ADG的自动DML重定向增强读写分离--ADG_REDIRECT_DML Oracle 19c 新特性之一,adg的自动 dml 重定向.就是在 ADG 环境下,连接到 ...

  9. Java11新特性(一)——JDK11新特性概述

    序言 关于JDK11,自从去年也就是2018年9月份 Oracle 对外公布--JDK11正式发布以来,博主就跃跃欲试,但是由于项目周期时间紧,一直未果,今年,也就是2019年2月底系统正式上线,博主 ...

最新文章

  1. Android 自定义 —— View lineTo 与 rLineTo 的区别
  2. Ionic中自定义公共模块以及在自定义模块中使用ionic内置模块
  3. matlab神经网络43个案例分析_10个经典案例,带你一起分析:高层结构设计难点...
  4. CUDA: OpenCV requires enabled ‘cudev‘ module from ‘opencv_contrib
  5. CentOS7 Ambari2.7.4编译
  6. Windows Server上用命令来起停IIS站点
  7. 深信服SCSA认证过程记录
  8. wps打印错误未定义书签怎么解决_word文档打印时候目录出现错:未定义书签,在wps里怎么修改?...
  9. 微信小程序漂亮按钮(中间矩形两端半圆形)
  10. 【Java系列】:异常-Exception
  11. 佐切的第四天学习分享
  12. 亚马逊云科技:云厂商做自研芯片的两个「选择」
  13. C# 打印小票 POS
  14. XXE漏洞介绍及利用
  15. 标准网页两侧浮动广告代码 支持FF及IE
  16. 使用eNSP搭建一个局域网
  17. error : declaration does not declare anything [-fpermissive]
  18. FDTD快速入门之Lumerical脚本语言Pickup(一)序言
  19. 微信小程序的视图容器—swiper
  20. 详情小三角css,CSS实现小三角

热门文章

  1. 大规模数据处理的演化历程(2003-2018)
  2. 求两个有序数组的中位数-算法导论
  3. 在 ASP.NET 中使用 HTTPHandler 实现 Front Controller
  4. Spring transaction事务之roll back回滚: rollback-for
  5. 从前到后的CAN总线(二)
  6. NLP(二十八)多标签文本分类
  7. Android10.0 日志系统分析(一)-logd、logcat 指令说明、分类和属性-[Android取经之路]
  8. List集合中的对象根据属性排序
  9. mysql客户端连接hive_连接Hive的客户端界面工具–SQuirrel SQL Client
  10. Android9.0 新特性