快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

兴發客户端_Oracle10gR2中的Mutex竞争的案例



近来有客户在Oracle10gR2上碰到了Mutex竞争的问题。

Mutex是Oracle在Oracle10g中引入的串行机制,徐徐会用来替代一些存在机能问题的Latch.和Latch比拟,一个Mutex Get大年夜约仅必要30~35个指令,而Latch Get则必要大年夜约150~200个指令,同时在大年夜小上,每个Mutex仅占用大年夜约16 Bytes空间,而一个latch在10gR2中要占用大年夜约112 Bytes空间。

Mutex首先替代了Library Cac兴發客户端he Latch以及Library Cache Pin,在Oracle 10.2.0.2上经由过程隐含参数_kks_use_mutex_pin的调剂可以限定是否应用Mutex机制来实现Cursor Pin:

SQL> set linesize 120

SQL> col name for a30

SQL> col value for a20

SQL> col describ for a60

SQL> SELECT x.ksppinm NAME, y.ksppstvl VALU兴發客户端E, x.ksppdesc describ

2FROM SYS.x$ksppi x, SYS.x$ksppcv y

3WHERE x.indx = y兴發客户端.indx

4AND x.ksppinm LIKE '%&par%'

5/

Enter value for 兴發客户端par: mutex

old4:AND x.ksppinm LIKE '%&par%'

new4:AND x.ksppinm LIKE '%mutex%'

NAMEVALUEDESCRIB

------------------------------ -------------------- ------------------------------------------------------------

_kks_use_mutex_pinTRUETurning on this will make KKS use mutex for cursor pins.

在新的Mutex Pins机制下,以劣等待事兴發客户端故可能变得常见:

cursor: mutex S

cursor: mutex X

cursor: pin S

cursor: pin S wait on X

cursor: pin X

因为Mutex应用CAS(Compare and Swap)机制,以是在不支持CAS的HP Unix平台上就可能呈现CPU耗损过高的环境。

这作为一个Bug在10.2.0.4版本中被修正。

您可能还会对下面的文章感兴趣: