绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Oracle SQL 高版本与Cursor Mutex X争用严重性能故障分析
2021-11-23 15:12:44


近遇到一个系统,在游标失效后,并发业务导致了大量的Cursor Mutex X,基本是同一个SQL
改SQL的版本高达900多个。
通过分析日志,trc文件以及AWR,初步确定是bug导致,目前我们的补丁是18年。参考如下文档。
Bug 28794230 - 12.2 Cursor Mutex X Due To Sql Not Shared Because Of BIND_EQUIV_FAILURE (Doc ID 28794230.8)
这个bug的影响范围是Versions >= 12.2.0.1 but BELOW 20.1
而fixed的数据库版本为
20.1.0
19.10.0.0.210119 (Jan 2021) Database Release Update (DB RU)
19.9.0.0.201020 (Oct 2020) Database Release Update(DB RU)
18.13.0.0.210119 (JAN 2021) Database Release Update (DB RU)
12.1.0.2.210119 (JAN 2021) Database Proactive Bundle Patch
12.2.0.1.191015 (Oct 2019) Bundle Patch for Windows Platforms
所以,要么我们升级数据库,要么使用workaound解决,如下所示,其目的是关闭统计信息反馈和Oracle acs

Several alternatives:
_optimizer_use_feedback=false
_optimizer_adaptive_cursor_sharing=false
_optimizer_extended_cursor_sharing_rel=none
_fix_control='23596611:OFF' may also help in some cases

建议关闭acs:
1. 导致额外的硬解析,2.可能造成子游标过多。3.存储子游标对shared pool有压力。

关闭自适应游标共享
alter system set "_optimizer_use_feedback"=false scope=spfile;
alter system set "_optimizer_adaptive_cursor_sharing"=false scope=spfile;
alter system set "_optimizer_extended_cursor_sharing_rel"=none scope=spfile;

alter system set "_optimizer_use_feedback"=false;
alter system set "_optimizer_adaptive_cursor_sharing"=false;
alter system set "_optimizer_extended_cursor_sharing_rel"=none;
关闭Cardinality feedback
alter system set "_optimizer_use_feedback"=false sid ='*' scope=spfile;

alter system set "_fix_control"='23596611:OFF';
查询设置结果。
SQL> col KSPPDESC for a50
SQL> set line 200
SQL> SELECT ksppinm, ksppstvl, ksppdesc
FROM x$ksppi x, x$ksppcv y
WHERE x.indx = y.indx AND ksppinm in ('_optimizer_use_feedback','_optimizer_adaptive_cursor_sharing','_optimizer_extended_cursor_sharing_rel','_fix_control')
SQL> /

KSPPINM KSPPSTVL KSPPDESC
---------------------------------------- ------------------------------ --------------------------------------------------
_fix_control 7555510:OFF bug fix control parameter
_optimizer_extended_cursor_sharing_rel NONE optimizer extended cursor sharing for relational operators
_optimizer_adaptive_cursor_sharing FALSE optimizer adaptive cursor sharing
_optimizer_use_feedback FALSE optimizer use feedback



分享好友

分享这个小栈给你的朋友们,一起进步吧。

Oracle运维新鲜事-技术与管理各占半边天
创建时间:2020-08-04 11:34:57
本技术栈旨在分享技术心得,运维趣事,故障处理经验,调优案例,故障处理涉及集群,DG,OGG,大家生产中遇到的问题基本都会囊括了,我会发布生产库遇到的故障,希望在交流中互助互益,共同提高,也希望大家讨论,如果您有生产中遇到的集群问题,也可以在这里提出来,一起讨论,现实中也帮助不少同学解决了生产库的故障。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • Abraham林老师
    栈主
  • 小雨滴
    嘉宾
  • hawkliu
    嘉宾
  • u_97a59a25246404
    嘉宾

小栈成员

查看更多
  • 栈栈
  • dapan
  • 小菜鸟___
  • hwayw
戳我,来吐槽~