How to analyze diagnostics to gather information
1. View the contents of the high paring and high version in the AWR report
See details of these sections: ' Sqlordered by Parse Calls ' or ' SQL ordered by Version Count '
SQL ordered by Parse Calls whether the SQL parsing execution in this section is too high or can be reduced.
SQL ordered by Version Count for the high Version SQL in this section, you need to find out why they cannot be shared and can be found by V$sql_shared_cursor view
2. Systemstats and Errorstack's concerns
is important for systemstats and Errorstack timeliness. Dump is required at the time of the problem, otherwise obsolete information is not valid. In a fast-running system, those holders and waiter processes are fleeting.
The system SQL parsing can be initially judged based on the contents of the load profile of the AWR:
If you see a lot of hard parses, the system may not be using binding variables, or there will be new SQL on-line.
For high version counts also causes cursor:ping S wait on X
Use V$sql_shared_cursor to find out why SQL cannot be shared
Some bugs may cause high version counts:
Document 1057392.8 Bug 10157392-high version counts forsql with binds (Bind_mismatch)
Document 9689310.8 Bug 9689310-excessive child Cursors/high version_count/oeri:17059 due to bind mismatch
A Bug may cause the cursor pin s wait on x:
NB |
Bug |
Fixed |
Description |
5650841 |
Hang/deadlock from ANALYZE of cluster index |
16191248 |
12.1.0.1.1, 12.1.0.2, 12.2.0.0 |
Concurrent drop of on-commit materialized views or using Dbms_redefinition |
14295250 |
11.2.0.4, 12.1.0.1 |
Long parse time for large query with many nested views due to much time in epxression analysis code |
14191508 |
11.2.0.3.8, 11.2.0.3.BP16, 11.2.0.4, 12.1.0.1 |
Slow row cache load due to seg$ and indsubpart$ queries |
14176247 |
11.2.0.4, 12.1.0.1 |
Many child cursors using Adaptive Cursor sharing with binds (due to bind_equiv_failure) |
18292893 |
12.1.0.2, 12.2.0.0 |
Jobs don ' t execute per schedule with a large number of PDBs |
18018515 |
12.2.0.0 |
High CPU in Qcthasfakebind (can cause ' cursor:pin S wait on X ' waits) |
16448569 |
11.2.0.4, 12.1.0.2, 12.2.0.0 |
PQ hang/deadlock Possible-"Cursor:pin S wait on X" waits |
16400122 |
12.2.0.0 |
Spikes in library cache mutexes contention for SQL using SQL Plan Baseline |
15850031 |
11.2.0.4, 12.2.0.0 |
Rare instance hang:deadlock between ' Row cache lock ' and ' Cursor:pin S wait for X ' |
14469756 |
12.2.0.0 |
Partition pruning causes delay in Tbl$or$idx$part$num |
14302813 |
11.2.0.4, 12.2.0.0 |
QC blocked/parse hang for parallel DML executed from remote stored procedure |
14029891 |
11.2.0.4, 12.1.0.1 |
Mutex deadlock have SQL baselines on recursive dictionary cursor |
11927619 |
11.2.0.1.BP11, 11.2.0.2.bp07, 11.2.0.3, 12.1.0.1 |
Dbms_stats slow on interval composite partitions |
11855965 |
11.2.0.3, 12.1.0.1 |
Truncate Partition takes long time doing recursive delete on mlog$ |
10213073 |
11.2.0.2.8, 11.2.0.2.BP18, 11.2.0.3, 12.1.0.1 |
Create synonym and create package incorrectly invalidate objects |
10171273 |
11.2.0.2.8, 11.2.0.2.bp08, 11.2.0.3, 12.1.0.1 |
Long Parse time with Non-equi subpartitioning under interval partitioning |
9944129 |
11.2.0.1.BP12, 11.2.0.2, 12.1.0.1 |
SQL not shared due to inst_drtld_mismatch with global transaction |
9935787 |
11.2.0.3, 12.1.0.1 |
Long parse time for large inlists-can cause ' cursor:pin S wait on X ' waits |
9694101 |
10.2.0.5.7, 11.2.0.2, 12.1.0.1 |
Hang/deadlock between "Cursor:pin S wait on X" and "Library cache lock" involving dictionary objects |
9499302 |
10.2.0.5.5, 11.1.0.7.7, 11.2.0.1.bp08, 11.2.0.2, 12.1.0.1 |
Improve Concurrent Mutex Request handling |
9472669 |
11.2.0.1.BP12, 11.2.0.2, 12.1.0.1 |
' Cursor:pin S wait on X ' waits for invalid SQL over DB link |
8508078 |
11.2.0.2, 12.1.0.1 |
Contention from many concurrent bad sqls-superseded |
12432089 |
11.2.0.3 |
Library cache Lock/cursor:pin S wait on X with parallel partition stats gathering |
8441239 |
11.2.0.1 |
Library Cache Lock Waits if long running TRUNCATE in progress |
8348464 |
11.1.0.7.2, 11.2.0.1 |
Create synonym and create package incorrectly invalidate objects |
7234778 |
11.2.0.1 |
Unnecessary "Cursor:pin S wait on X" waits |
5485914 |
10.2.0.4 |
Mutex self deadlock on explain/trace of remote mapped SQL |
6143420 |
10.2.0.5, 11.1.0.6 |
Deadlock involving "ROW CACHE LOCK" on Dc_users and "Cursor:pin S WAIT on X" |
6011045 |
10.2.0.5.5 |
Dbms_stats causes deadlock between ' Cursor:pin S wait on X ' and ' Library cache lock ' |
7462072 |
10.2.0.4.3, 10.2.0.5 |
Unnecessary "Cursor:pin S wait on X" waits |
5983020 |
10.2.0.4 |
Mmon deadlock with user session executing ALTER user |
7226463 |
10.2.0.5 |
EXECUTE IMMEDIATE No releasing mutex or library cache pin |
+ |
5907779 |
10.2.0.4 |
Self deadlock hang on "Cursor:pin S wait on X" (typically from dbms_stats) |
How to diagnose cursor pin s wait on X series two