日期:2011-01-25 22:55:00 来源:本站整理
Oracle10gR2中的Mutex竞争的案例-开辟技术[Oracle防范]
本文“Oracle10gR2中的Mutex竞争的案例-开辟技术[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
近来有客户在Oracle10gR2上碰到了Mutex竞争的问题.
Mutex是Oracle在Oracle10g中引入的串行机制,渐渐会用来替换一些存在性能问题的Latch.和Latch相比,一个Mutex Get大约仅需求30~35个指令,而Latch Get则需求大约150~200个指令,同时在大小上,每个Mutex仅占用大约16 Bytes空间,而一个latch在10gR2中要占用大约112 Bytes空间.
Mutex首先替换了Library Cache 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 VALUE, x.ksppdesc describ
2 FROM SYS.x$ksppi x, SYS.x$ksppcv y
3 WHERE x.indx = y.indx
4 AND x.ksppinm LIKE '%&par%'
5 /
Enter value for par: mutex
old 4: AND x.ksppinm LIKE '%&par%'
new 4: AND x.ksppinm LIKE '%mutex%'
NAME VALUE DESCRIB
------------------------------ -------------------- ------------------------------------------------------------
_kks_use_mutex_pin TRUE Turning 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版本中被改正.
以上是“Oracle10gR2中的Mutex竞争的案例-开辟技术[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论