Init parameterOptimizer & SQL
CURSOR_SHARING
What it controls
Whether Oracle replaces literals with bind variables before parsing.
Know this before you change it
FORCE is a stopgap for applications flooding the shared pool with literal SQL. It can change plans, so test it and prefer fixing the application.
Default: EXACT
Check and change it
1-- Current value on every instance2SELECT inst_id, name, value, isdefault, ismodified3FROM gv$parameter4WHERE name = 'cursor_sharing';5 6-- Value stored in the spfile7SELECT sid, value FROM v$spparameter WHERE name = 'cursor_sharing' AND isspecified = 'TRUE';8 9-- Dynamic: takes effect now and is kept after a restart10ALTER SYSTEM SET cursor_sharing = FORCE SCOPE = BOTH SID = '*';11 12-- Or for your own session only13ALTER SESSION SET cursor_sharing = FORCE;14 15-- Remove it from the spfile to go back to the default at the next restart16ALTER SYSTEM RESET cursor_sharing SCOPE = SPFILE SID = '*';Related scripts
- Literal SQL that should use bind variablesGroups statements that are identical apart from literals. Hundreds of copies of the same shape means hard parsing and shared pool churn; show the…
Open in the parameter referenceOracle's reference
More in Optimizer & SQL
- OPTIMIZER_FEATURES_ENABLEMakes the optimizer behave like an earlier release.
- OPTIMIZER_ADAPTIVE_STATISTICSAdaptive statistics features such as SQL plan directives and dynamic statistics (12.2 and later).
- OPTIMIZER_ADAPTIVE_PLANSLets the optimizer switch join methods during the first execution (12.2 and later).
- STATISTICS_LEVELHow much performance data Oracle collects.
- OPTIMIZER_MODEWhether the optimizer aims for total throughput or fast first rows.
- DB_FILE_MULTIBLOCK_READ_COUNTBlocks read in one I/O during full scans.
- PARALLEL_MAX_SERVERSThe most parallel execution processes per instance.
- PARALLEL_DEGREE_POLICYWhether Oracle chooses the degree of parallelism itself.
- RESULT_CACHE_MAX_SIZEMemory for the server result cache.