第12期 Oracle12.2 引发 SQL 不能共享进而造成 Cursor Mutex: x

今天有一个朋友说公司安装使用的是 Oracle12.2  ,发现一直存在enq: TX - row lock contention事件,出现cursor: mutex X、cursor: mutex S、cursor: pin S wait on X 这类等待事件。

查询oracle资料,发现是由于Oracle12.2 未公开的 bug 导致的由于 Bind_equiv_failure 引发 SQL 不能共享进而造成 Cursor Mutex: x。

解决方案

打上 Patch 28794230

或者

使用如下的变通方案:

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;


请使用浏览器的分享功能分享到微信等