"Cursor: Pin S Wait On X" Contention Mutex Sleep Reason Primarily (文档 ID 1268724.1)
2014-01-20 15:19
861 查看
In this Document
Oracle Server - Enterprise Edition - Version 10.2.0.4 and later
Information in this document applies to any platform.
Sessions waiting on latch:library cache and cursor pin S wait on X mutexes
Application changes were made prior to the issue. Application changes involve changes to NLS_LENGTH_SEMANTICS although this is unlikely to be apparent initially, for example, whilst the length of PLSQL datatypes is fixed at compile time, anonymous PLSQL
blocks have their variables defined at run time .
Database is not hung just contending as more and more sessions start waiting for the "cursor: pin S wait on X" event.
main mutex sleeps by volume were :
kkslce [KKSCHLPIN2] and kksfbc [KKSPRTLOC1]
using:
The cursor with all the versions is a pseudo cursor:
Main reasons for the mismatch are: AUTH_CHECK_MISMATCH and LANGUAGE_MISMATCH using:
Note:438755.1 Formated V$SQL_SHARED_CURSOR Report by SQLID or Hash Value (Doc ID 438755.1)
Note:296377.1 Handling and resolving unshared cursors/large version_counts
Application changes were made prior to the issue
The cause of the problem is:
Bug 7648406 CHILD CURSOR IS NOT SHARED IF NLS_LENGTH_SEMANTICS=CHAR
Symptoms also match :
Note:758674.1 Library Cache: Mutex X " On Koka Cursors (LOBs) Non-Shared : (Doc ID 758674.1)
Solutions/Workarounds may include:
Apply a patch for : Bug 7648406 CHILD CURSOR IS NOT SHARED IF NLS_LENGTH_SEMANTICS=CHAR. This bug is fixed in 10.2.0.5 Patchset
Set NLS_LENGTH_SEMANTICS=BYTE globally or in a logon trigger etc
@ BUG:7441165 - FOR: SOLARIS/HP ONLY: PREVENT PREEMPTION WHILE HOLDING A MUTEX
BUG:7648406 - CHILD CURSOR IS NOT SHARED IF SET NLS_LENGTH_SEMANTICS=CHAR.
NOTE:296377.1 - Troubleshooting: High Version Count Issues
NOTE:438755.1 - High SQL Version Counts - Script to determine reason(s)
NOTE:758674.1 - " Library Cache: Mutex X " On Koka Cursors (LOBs) Non-Shared :
NOTE:786507.1 - How to Determine the Blocking Session for Event: 'cursor: pin S wait on X'
Oracle
Database Products > Oracle
Database > Oracle
Database > Oracle
Database - Enterprise Edition > RDBMS > Database
Level Performance Issues (not SQL Tuning)
CONTENTION;
CURSOR
PIN S WAIT ON X;
HANGING;
V$SQL_SHARED_CURSOR
Symptoms |
Changes |
Cause |
Solution |
References |
This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review. |
APPLIES TO:
Oracle Server - Enterprise Edition - Version 10.2.0.4 and laterInformation in this document applies to any platform.
SYMPTOMS
Sessions waiting on latch:library cache and cursor pin S wait on X mutexesApplication changes were made prior to the issue. Application changes involve changes to NLS_LENGTH_SEMANTICS although this is unlikely to be apparent initially, for example, whilst the length of PLSQL datatypes is fixed at compile time, anonymous PLSQL
blocks have their variables defined at run time .
Database is not hung just contending as more and more sessions start waiting for the "cursor: pin S wait on X" event.
main mutex sleeps by volume were :
kkslce [KKSCHLPIN2] and kksfbc [KKSPRTLOC1]
using:
select * from X$MUTEX_SLEEP ; Mutex Type Location Sleeps Wait Time (ms) ------------- ------------------- -------- -------------- Cursor Pin kkslce [KKSCHLPIN2] 14384475 2132356683 ....
The cursor with all the versions is a pseudo cursor:
select sql_id, count(*) from v$sql_shared_cursor group by sql_id having count(*) > 10 order by 2; SQL_ID COUNT(*) ------------- ---------- 4gd6b1r53yt88 15122 SQL> select distinct sql_text from v$open_cursor where sql_id = '4gd6b1r53yt88' SQL_TEXT ------------------------------------------------------------ table_1_ff_14f_0_0_0
Main reasons for the mismatch are: AUTH_CHECK_MISMATCH and LANGUAGE_MISMATCH using:
Note:438755.1 Formated V$SQL_SHARED_CURSOR Report by SQLID or Hash Value (Doc ID 438755.1)
Note:296377.1 Handling and resolving unshared cursors/large version_counts
CHANGES
Application changes were made prior to the issue
CAUSE
The cause of the problem is:Bug 7648406 CHILD CURSOR IS NOT SHARED IF NLS_LENGTH_SEMANTICS=CHAR
Symptoms also match :
Note:758674.1 Library Cache: Mutex X " On Koka Cursors (LOBs) Non-Shared : (Doc ID 758674.1)
SOLUTION
Solutions/Workarounds may include:Apply a patch for : Bug 7648406 CHILD CURSOR IS NOT SHARED IF NLS_LENGTH_SEMANTICS=CHAR. This bug is fixed in 10.2.0.5 Patchset
Set NLS_LENGTH_SEMANTICS=BYTE globally or in a logon trigger etc
REFERENCES
@ BUG:7441165 - FOR: SOLARIS/HP ONLY: PREVENT PREEMPTION WHILE HOLDING A MUTEXBUG:7648406 - CHILD CURSOR IS NOT SHARED IF SET NLS_LENGTH_SEMANTICS=CHAR.
NOTE:296377.1 - Troubleshooting: High Version Count Issues
NOTE:438755.1 - High SQL Version Counts - Script to determine reason(s)
NOTE:758674.1 - " Library Cache: Mutex X " On Koka Cursors (LOBs) Non-Shared :
NOTE:786507.1 - How to Determine the Blocking Session for Event: 'cursor: pin S wait on X'
|
|
Database Products > Oracle
Database > Oracle
Database > Oracle
Database - Enterprise Edition > RDBMS > Database
Level Performance Issues (not SQL Tuning)
|
CONTENTION;
CURSOR
PIN S WAIT ON X;
HANGING;
V$SQL_SHARED_CURSOR
相关文章推荐
- BaiDuMap
- 正则表达式检测email地址是否合法
- OnPaint()函数的作用原理
- Codeforces Round #223 (Div. 2) B. Sereja and Stairs
- RAID原理
- gcc+mingw 编译后报错 error:'::main' must return 'int'
- RAID0 RAID1 RAID01 RAID10 四种硬盘阵列区别及数据吞吐量
- Invalid file name: must contain only [a-z0-9_.]
- Wrong wait events in 11.2 ("cursor: mutex S" instead of "cursor: mutex X") (文档 ID 9591812.8)
- 报错:Conversion to Dalvik format failed: Unable to execute dex:
- why not the Main method is public static void ?
- 多线程中的信号机制--sigwait()函数
- 正则表达式检测用户输入的email地址是否合法
- paip.不同目录结构哈的文件批量比较
- paip.不同目录结构哈的文件批量比较
- installSAMfaild
- Codeforces Round #223 (Div. 2)A. Sereja and Dima&&B. Sereja and Stairs
- ACM HDOJ 1867 (A + B for you again)
- HDU 1021:Fibonacci Again.
- DLL的Dllmain函数讲解