将该参数optimizer_capture_sql_plan_baselines 设置为true后,出现大量的等待事件:enq: HW - contention

select * from VW_SESSION_WAIT_LHR;

SELECT a.SID,

a.serial#,

a.WAIT_CLASS,

a.EVENT,

a.BLOCKING_SESSION,

a.SQL_TEXT

FROM VW_SESSION_LHR a

WHERE a.EVENT = 'enq: HW - contention';

Sql语句:

MERGE INTO sqlobj$data

USING dual

ON (:1 IS NULL)

WHEN MATCHED THEN

UPDATE

SET comp_data = :2

WHERE signature = :3

AND category = :4

AND obj_type = :5

AND plan_id = :6

WHEN NOT MATCHED THEN

INSERT

(signature,

category,

obj_type,

plan_id,

comp_data,

spare1,

spare2)

VALUES

(:7,

:8,

:9,

:10,

:11,

NULL,

NULL);

数据库版本:

解决:

总体来说是Oracle的一个bug:

第一步:先把该属性禁用 alter system  Set optimizer_capture_sql_plan_baselines=false;

第二步:采用如下的存过把已经捕捉到的执行计划全部删掉,不然系统需要等待很久才能恢复正常,因为当前的很多sql都是正在更新系统表 sqlobj$data (或者使用sys用户直接把相关表清空也可以,同一个道理,主要是减少表的数据量)

---使用拥有dba角色的用户多次执行如下存过,要多次执行哟,直到 DBA_SQL_PLAN_BASELINES 中查询不出来数据为止

DECLARE

v BINARY_INTEGER;

BEGIN

FOR cur IN (SELECT * FROM DBA_SQL_PLAN_BASELINES a) LOOP

BEGIN

:= DBMS_SPM.drop_sql_plan_baseline(sql_handle => cur.SQL_HANDLE);

EXCEPTION

WHEN OTHERS THEN

NULL;

END;

END LOOP;

EXCEPTION

WHEN OTHERS THEN

dbms_output.put_line('error:' || SQLCODE || ',' || SQLERRM);

END;

Description

This defect has many apparent unrelated symptoms :

1) An unexpected growth is observed in sysaux tablespace with

optimizer_capture_sql_plan_baselines set to true.

2) Excessive redo generation

3) Additional recursive calls, increasing parsing and execution time.

The issue is caused by SQL Plan Management that keeps collecting baselines

in every execution instead of just on hard parsing.

Rediscovery Notes:

Query on v$sysaux_occupants shows SQL_MANAGEMENT_BASE as one of the highest.

The following query is observed in SQL traces:

MERGE INTO sqlobj$data

USING dual ON (:1 IS NULL)

WHEN MATCHED THEN

UPDATE SET comp_data = :2

WHERE signature = :3

AND category = :4

AND obj_type = :5

AND plan_id = :6

WHEN NOT MATCHED THEN

INSERT (signature, category, obj_type, plan_id, comp_data,

spare1, spare2)

VALUES (:7, :8, :9, :10, :11, null, null);

Workaround

Set optimizer_capture_sql_plan_baselines=false

HOOKS CBO:SPM parameter:optimizer_capture_sql_plan_baselines LIKELYAFFECTS XAFFECTS_11.1.0.6 XAFFECTS_V11010006 AFFECTS=11.1.0.6 XAFFECTS_11.1.0.7 XAFFECTS_V11010007 AFFECTS=11.1.0.7 XAFFECTS_11.2.0.1 XAFFECTS_V11020001 AFFECTS=11.2.0.1 XAFFECTS_11.2.0.2 XAFFECTS_V11020002 AFFECTS=11.2.0.2 XPRODID_5 PRODUCT_ID=5 PRODID-5 RDBMS XCOMP_RDBMS COMPONENT=RDBMS TAG_CBO TAG_PERF TAG_SPACEUSE TAG_SPM TAG_SYSAUX CBO PERF SPACEUSE SPM SYSAUX FIXED_11.2.0.3 FIXED_12.1.0.1 FIXED_WIN:B107P41 FIXED_WIN:B202P04

Further details on this issue can be found in Note:1304775.1

Please note: The above is a summary description only. Actual symptoms can vary. Matching to any symptoms here does not confirm that you are encountering this problem. For questions about this bug please consult Oracle Support.

References

Bug:9910484 (This link will only work for PUBLISHED bugs)Note:245840.1 Information on the sections in this article

11.2.0.2的SPM的一个bug相关推荐

  1. 关于VC++6.0中getline函数的一个bug

    关于VC++6.0中getline函数的一个bug 最近在调试程序时,发现getline函数在VC++6.0和其他编译器上运行结果不一样,比如有如下这段程序: #include <iostrea ...

  2. Oracle 11.2.0.2新特性——用户重命名(Rename User)

    11.2.0.2里新增了一个很有意思的新特性--用户重命名(Rename User),以前俺们都是Rename datafile呀,tablespace呀,Index呀,抑或是constraint之类 ...

  3. Adobe Captivate 2019 11.5.0 Windows和macOS汉化中文版汉化补丁Adobe Captivate中文官网captivatecn.com

    Adobe Captivate 2019发布了两个更新补丁,分别是Adobe Captivate (2019 release)  Update 1(升级后版本号11.0.1)和Adobe Captiv ...

  4. Oracle RAC 10.2.0.5升级到11.2.0.4遇到的问题

        最近有这个需求所以提前在家里的测试环境做了相关的测试,将Oracle RAC 10.2.0.5 for Linux升级到Oracle RAC 11.2.0.4,不对物理结构做任何变更,直接升级 ...

  5. oracle bloom过滤,CSS_Oracle BLOOM过滤问题分析与解决,升入11.2.0.1遇到一个BLOOM过滤器 - phpStudy...

    Oracle BLOOM过滤问题分析与解决 升入11.2.0.1遇到一个BLOOM过滤器导致的问题. 系统里面发生大量死锁,但是这个ORA-60伴随着另一个错误ORA-10387 ORA-00060: ...

  6. oracle 11.2.0.4 bug,警示:一个专为AIX上oracle11.2.0.4版本定制的Bug正在高发

    作者:盖国强 有这么一个Bug,仅在AIX平台上,Oracle Database 11.2.0.4的版本中出现,在12.1中被修复,之前和之后都不存在,所以简直是为这一版本定制的. 之前一些客户零星的 ...

  7. 手动建库11.2.0.4

    环境: oracle11.2.0.4 redhat6.2 在上篇文章中,我们只安装了oracle,还没有建立实例,本篇文章就来介绍如果手动建立实例. 1.创建密码文件(password file)-- ...

  8. oracle 安装grid补丁,安装oracle 11.2.0.4.4的psu补丁过程

    一个命令将GI.db的home都打上补丁了 #/u01/app/11.2.0/grid/OPatch/opatch auto /u01/soft/grid/19380115 -ocmrf /tmp/c ...

  9. Oracle Database 11.2.0.1(静默安装)

    http://www.cnblogs.com/ylqmf/archive/2012/04/16/2451211.html 本文档是Oracle Database 11.2.0.1 for RHEL5 ...

最新文章

  1. BigDecimal 类型转换、运算、比较
  2. MySQL · 引擎特性 · InnoDB 崩溃恢复过程
  3. python整数类型进制表示_python2学习经验(一) 变量数据类型
  4. 反Secure Boot垄断:兼谈如何在Windows 8电脑上安装Linux
  5. Hive中排序和聚集
  6. 阿里云成为MariaDB基金会白金会员 全球唯一入选云计算公司
  7. Windows Azure Web Site (17) 设置Web App TimeOut时间
  8. 认真分析mmap:what? why? how?
  9. 凸优化第二章凸集 2.6对偶锥与广义不等式
  10. scholarscope不显示影响因子_反馈页面
  11. 信息系统项目管理师证书有什么用?
  12. RC串联延时电路电容充电时间计算
  13. 披萨门 pizzagate
  14. 《海马记忆训练》摘录
  15. 批量导出Outlook所有联系人到vcard文件
  16. 记一次线上OOM问题分析与解决,涨知识了!
  17. svelte-scrollbar: 基于svelte.js自定义滚动条组件|svelte3虚拟滚动条
  18. 计算机毕业论文java毕业设计成品源码网站基于SSM实现的财务|记账|账单管理系统
  19. php html转换成word,php如何实现html转换word?
  20. trunk端口配置的PVID

热门文章

  1. mysql源码目录在哪_Mysql源码学习——源码目录结构
  2. Mysql disk write 高_优化系列|实例解析MySQL性能瓶颈排查定位 导读 排查过程
  3. c语言学习进阶-C语言程序性能优化
  4. android在java下建立模块,Android Studio:如何在Android模块中包含Java模块?
  5. 微软进一步融合 Linux,VS Code 官方支持树莓派
  6. NumPy、TensorFlow和scikit-learn简介
  7. python 享元模式_设计模式-创建型模式,python享元模式 、python单例模式(7)
  8. c语言计算日期天数,关于计算两个日期间天数的代码,大家来看看
  9. padding、margin百分比
  10. 通过www服务器提供的起始网页就能访问,2010春2题目.doc