合 由于BIND_EQUIV_FAILURE导致的游标不能共享问题
Tags: Oracle版本数高(High Version Count)游标共享BIND_EQUIV_FAILURE
简介
12.2 Cursor Mutex: x Due to Sql not Shared Because of Bind_equiv_failure (Doc ID 2539161.1)
12.2 由于 Bind_equiv_failure 引发 SQL 不能共享进而造成 Cursor Mutex: x (Doc ID 2610645.1)
Bug 28794230 12.2 Cursor Mutex X Due To Sql Not Shared Because Of BIND_EQUIV_FAILURE
SQL's Are Not Getting Shared due to BIND_EQUIV_FAILURE in 12.2 (Doc ID 2635456.1)
BIND_EQUIV_FAILURE不能共享的原因:
① 由于ACS自适应游标的bug导致
② 表字段为VARCHAR2,但是输入值为NVARCHAR2
③设置alter session set statistics_level=all;
导致出现子光标不能共享,在高版本中已经归类到OPTIMIZER_MISMATCH中 了。
④ 由于bug 28794230导致,12.2 由于 Bind_equiv_failure 引发 SQL 不能共享进而造成 Cursor Mutex: x (Doc ID 2610645.1) 、12.2 Cursor Mutex X Due To Sql Not Shared Because Of BIND_EQUIV_FAILURE
⑤ 由于SQL's Are Not Getting Shared due to BIND_EQUIV_FAILURE in 12.2 (Doc ID 2635456.1)引起的,解决办法:alter system set "_fix_control"='17443547:OFF';
症状
在 12.2.0.1 版本上
当升级数据库到12.2后,SQL 由于 BIND_EQUIV_FAILURE 而不能共享
call stack 包含如下函数
kgxWait <- kgxExclusive <- kkscsAddChildNode <- kkscsFindMatchingRange <-
本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信dbaup66,谢谢!