当前位置: 首页 > 图文教程 > 数据库 > Oracle > Oracle10gR2上遇到了Mutex竞争的问题

Oracle
Oracle数据库处理时间的技巧
Oracle数据库重复数据删除的三种情况
Oracle和SQL Server分析挖掘函数
Oracle数据库备份与恢复(6):LogMiner
Oracle数据库备份与恢复(5):Flashback
Oracle数据库备份与恢复(4):RMAN(备份与恢复管理器)
Oracle数据库备份与恢复(3):OS备份和用户管理
Oracle数据库备份与恢复(2):SQL*Loader
Oracle数据库备份与恢复(1):exp和imp
Oracle数据库文件恢复与备份思路
Oracle中利用EXP/IMP工具实现数据迁移
Oracle中Exp/Imp大量数据处理
ORACLE的外连接
sqlserver与oracle的区别
SQLite数据库最适合做网站内容管理系统(CMS)
网站主机教程(7):网站主机的数据库技术
Oracle10G认证考试自2008年12月1日变化
什么是Oracle?oracle认证种类介绍
MSSQL数据库镜像在Oracle中是如何实现的
Oracle数据库维护中的前瞻性

Oracle10gR2上遇到了Mutex竞争的问题


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 66 ::
收藏到网摘: n/a

最近有客户在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版本中被修正。