High Number Of Child Cursors With Literal Replacement Causing Library Cache Lock Contention
(Doc ID 2359242.1)
Last updated on MARCH 03, 2022
Applies to:Oracle Database - Enterprise Edition - Version 126.96.36.199 to 188.8.131.52 [Release 12.1 to 12.2]
Oracle Database Exadata Cloud Machine - Version N/A and later
Oracle Cloud Infrastructure - Database Service - Version N/A and later
Oracle Database Cloud Exadata Service - Version N/A and later
Oracle Database Exadata Express Cloud Service - Version N/A and later
Information in this document applies to any platform.
In 184.108.40.206 and 220.127.116.11 a high library cache lock contention on $BUILD$ object for a non-shared cursor is encountered. Following symptoms are noticed:
- SQL is not shared when CURSOR_SHARING=FORCE
- Each execution with different bind variables creates a new child cursor due to HASH_MATCH_FAILED=Y
- Execution plan shows literals that aren't replaced with system generated binds in filter predicates section, similar to :
AND "TABLE_A"."COLUMN1"='literal0001') OR ("TABLE_A"."COLUMN2" IS NOT NULL AND 0=:SYS_B_07 AND "TABLE_A"."COLUMN1"='literal0002'))))
Upgrade to 18.104.22.168 or 22.214.171.124 version and use of CURSOR_SHARING=FORCE
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!
In this Document