- 浏览: 4406263 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (634)
- Oracle日常管理 (142)
- Oracle体系架构 (45)
- Oracle Tuning (52)
- Oracle故障诊断 (35)
- RAC/DG/OGG (64)
- Oracle11g New Features (48)
- DataWarehouse (15)
- SQL, PL/SQL (14)
- DB2日常管理 (9)
- Weblogic (11)
- Shell (19)
- AIX (12)
- Linux/Unix高可用性 (11)
- Linux/Unix日常管理 (66)
- Linux桌面应用 (37)
- Windows (2)
- 生活和工作 (13)
- 私人记事 (0)
- Python (9)
- CBO (15)
- Cognos (2)
- ORACLE 12c New Feature (2)
- PL/SQL (2)
- SQL (1)
- C++ (2)
- Hadoop大数据 (5)
- 机器学习 (3)
- 非技术 (1)
最新评论
-
di1984HIT:
xuexilee!!!
Oracle 11g R2 RAC高可用连接特性 – SCAN详解 -
aneyes123:
谢谢非常有用那
PL/SQL的存储过程和函数(原创) -
jcjcjc:
写的很详细
Oracle中Hint深入理解(原创) -
di1984HIT:
学习了,学习了
Linux NTP配置详解 (Network Time Protocol) -
avalonzst:
大写的赞..
AIX内存概述(原创)
Oracle 10g/11g Latch机制的变化:
前面曾经提到,Oracle的Latch机制采用spin来进行持有CPU的不断尝试,虽然通常Latch的获取会非常快(一般在微秒级),但是很多时候Latch竞争还是会引发极为严重的CPU争用。所以从Oracle 10g开始,Oracle尝试引入一种新的机制来代替传统的Latch机制,这就是Mutex机制,也就是互斥机制。和Latch相比,一个Mutex Get大约仅需要30~35个指令,而Latch Get则需要大约150~200个指令,同时在大小上,每个Mutex仅占大约16Bytes空间,而Latch在10gR2中要占用大约112Bytes空间。
在Oracle 10.2..0.1中一个新的参数_kks_use_mutex_pin被引入,不过缺省值为False:
sys@TQGZS> 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: kks
old 4: and x.ksppinm like '%&par%'
new 4: and x.ksppinm like '%kks%'
NAME VALUE DESCRIB
------------------------- --------------- --------------------------------------------------------
_kks_use_mutex_pin FALSE Turning on this will make KKS use mutex for cursor pins.
这意味着新的Mutex机制已经准备好了用于应付Cursor Pin处理。在Oracle 10gR2/11gR1随后的版本中,这个参数被设置为Ture:
sys@CCDB> select * from v$version where rownum < 2;
BANNER
----------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
sys@CCDB> @GetHidPar.sql
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机制首先被引入用于替代Library Cache Latch以及Library Cache Pin等机制。使用Mutex Pin机制Oracle能够使用更少的CPU资源获得更好的性能。由于Mutex Pin机制带来的Cursor管理上性能提升,所以曾经用来缓解Cursor Latch竞争的参数CURSOR_SPACE_FOR_TIME从Oracle 10.2.0.5和Oracle 11.1.0.7开始将不再被支持。
在Oracle 11.1.0.6中,以下是数据库中Library Cache相关的Latch与等待:
sys@CCDB> select * from v$version where rownum < 2;
BANNER
----------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
sys@CCDB> select name from v$latch where name like '%library%';
NAME
------------------------------
library cache load lock
sys@CCDB> select name from v$event_name where name like '%library%';
NAME
------------------------------
library cache pin
library cache lock
library cache load lock
library cache: mutex X
library cache: mutex S
OSD IPC library
library cache revalidation
library cache shutdown
8 rows selected.
在Oracle Database 11g中,和Mutex相关的数据库描述已经被引入,首先的变化是和Library Cache相关的Latch仅余library cache load lock:
sys@CCDB> select * from v$version where rownum < 2;
BANNER
----------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
sys@CCDB> select name from v$latch where name like '%library%';
NAME
------------------------------
library cache load lock
其次是等待事件引入了Library Cache:Mutex S/X等待,用以描述因为Mutex竞争而导致的Library Cache等待:
sys@CCDB> select name from v$event_name where name like '%library%';
NAME
------------------------------
library cache pin
library cache lock
library cache load lock
library cache: mutex X
library cache: mutex S
OSD IPC library
library cache revalidation
library cache shutdown
8 rows selected.
虽然在Oracle Database 11gR1中,这些变化已经可以清晰地看到,但是一些问题仍然存在,Oracle仍然在通过一系列不断努力和改进使得这些新的变化走向成熟。
当然Library Cache Latch在某些条件下仍然会被用到,Oracle数据库的很多内容还在不断变化中。关于Mutex的信息主要可以通过两个视图来查询:v$mutex_sleep和v$mutex_sleep_history。以下是一个Oracle 11g生产环境中的查询示范输出:
sys@CCDB> select SLEEP_TIMESTAMP,MUTEX_TYPE,GETS,SLEEPS,LOCATION,MUTEX_VALUE
2 from v$mutex_sleep_history where rownum <10;
SLEEP_TIMESTAMP MUTEX_TYPE GETS SLEEPS LOCATION MUTEX_VALUE
------------------------------ --------------- ---------- ---------- -------------------- ----------------
11-MAY-10 08.46.15.176426 PM Cursor Pin 20439381 80 kksfbc [KKSCHLPIN1] 00
13-MAY-10 04.01.19.066757 PM Library Cache 39098 113171 kglhdgn1 62 0000021E00000000
13-MAY-10 04.50.40.279082 PM Library Cache 172560 1384786 kgllkdl1 85 00
06-MAY-10 09.34.57.393852 PM Library Cache 76718 43 kgllkdl1 85 000001CC00000000
06-MAY-10 10.24.47.734523 PM Library Cache 103771 383024 kglhdgn1 62 0000031B00000000
13-MAY-10 04.50.40.328295 PM Library Cache 150176 46662 kgllkdl1 85 000001C200000000
13-MAY-10 04.50.40.291834 PM Library Cache 208155 45 kgllkdl1 85 00
09-MAY-10 01.00.03.163520 AM Library Cache 155 1 kglhdgn1 62 00
07-MAY-10 03.33.35.071512 PM Library Cache 2933 5 kgllkdl1 85 0000029700000000
9 rows selected.
- The End -
参考至:http://www.dbtan.com/2010/05/oracle-10g11g-latch.html
如有错误,欢迎指正
邮箱:czmcj@163.com
发表评论
-
Oracle 锁与锁争用
2015-05-08 02:13 4180大多数的锁都是行级 ... -
Oracle SQL Parsing
2014-07-30 22:24 1949Stages of SQL Processing Fig ... -
Oracle 11g中的direct path read(原创)
2014-06-16 23:01 5786在11g中,全表扫描可能使用direct path rea ... -
深入解析direct path read
2014-06-16 22:35 2597传统读取数据的 ... -
ORA-01555和延迟块清除
2014-06-16 21:13 206001555, 00000, "snapshot t ... -
Oracle(block clean out)的块清除
2014-06-16 21:09 1286Oracle(block clean out)的块清除Cl ... -
SCN之fast cleanout
2014-06-07 16:13 1751SQL> select dbms_rowid.row ... -
SCN之delayed block cleanout
2014-06-07 16:09 1195Block的cache header部分 ... -
Oracle rman change tracking CTWR(原创)
2014-04-25 11:10 2977block change tracking介绍Block c ... -
SSM自动段空间管理 简介
2014-03-27 19:46 1360因为ASSM的官方文档很少,经过多次的查证之后,终于弄明白了 ... -
undo表空间相关(原创)
2014-03-25 21:48 2110DML语句与undo ... -
Bitmap Index vs B-tree Index(原创)
2014-03-08 21:09 1529Introduction Conventional wi ... -
bitmap索引的深入研究
2014-03-08 14:59 1465位图(bitmap)索引是另外一种索引类型,它的组织形式与 ... -
ASM内部原理(原创)
2012-12-24 21:55 9944ASM的SGA组成 ASM实例 ... -
ASM的元数据(原创)
2012-12-18 21:16 3068概述 ASM Filesystem是建立在ASM D ... -
Oracle数据块深入分析总结
2012-04-23 12:51 7911最近在研究块的内部结构,把文档简单整理了一下,和大家分享一下。 ... -
深入理解重建索引(原创)
2012-04-10 16:58 20795什么时候需要重建索引 ... -
Oracle中B-TREE索引的深入理解(原创)
2012-04-09 20:59 15938索引概述 索引与表一样,也属于段(segment)的 ... -
深入理解Oracle中的latch(原创)
2012-04-04 18:17 11168串行化 概述 串行化 - 数据库系统本 ... -
深究Oracle中的锁之锁管理经验总结
2012-03-29 23:37 0锁的申请与释放 锁的申请: 1.使用hash算法将 ...
相关推荐
### Oracle 10g性能分析与优化:深入理解Latch及其优化策略 #### 一、Latch与Lock的区别 在Oracle数据库的性能优化过程中,理解和区分Latch与Lock是非常重要的。两者虽然都涉及资源的控制和访问,但其作用机制和对...
自Oracle 10g起,为了更精细地管理和诊断并发问题,传统的"Latch Free"事件被细分为针对SGA各部分的具体子Latch事件。例如,针对Buffer Cache的`cache buffer chains latch`和`cache buffer lru latch`,Shared Pool...
Oracle数据库是一种广泛使用的大型关系型数据库管理系统,它在处理并发事务时采用了一种称为“Latch”和“Lock”的并发控制机制。Latch(闩锁)和Lock(锁定)都是Oracle用来确保数据一致性、防止数据冲突的关键组件...
4. **Latch等待**: latch是Oracle内部的一种同步机制,过多的latch等待可能表明并发控制问题。 三、优化策略 1. **索引优化**:合理创建和使用索引可以大幅提升查询速度,但过多的索引会增加写操作的开销,需权衡...
Oracle数据库中的"Latch Free"等待事件是数据库性能优化的一个重要概念。在深入探讨这个主题之前,我们先要理解什么是Latch和Lock,以及它们之间的区别。 Latch(锁片或轻量级锁)是一种低级别的同步机制,主要用于...
8.2 并行处理的机制 189 8.3 读懂一个并行处理的执行计划 191 8.4 一个很常见的并行执行等待事件 192 8.5 并行执行的适用范围 194 8.5.1 并行查询 194 8.5.2 并行ddl操作 195 8.5.3 并行dml操作 203 8.6 并行执行的...
【学习动态性能表(11)--v$latch$v$latch_children】主要关注Oracle数据库中的动态性能视图,尤其是关于latch这一关键概念的监控和分析。latch是一种轻量级的锁定机制,用于保护SGA(System Global Area)中的共享...
本主题聚焦于"Oracle.10g性能分析与优化思路",旨在深入探讨如何通过一系列技术手段和策略让Oracle数据库运行得更加流畅、快速。 一、SQL优化 1. SQL执行计划分析:了解SQL语句的执行过程,利用 Explain Plan 工具...
### Oracle 10g 优化知识点详解 #### 一、Oracle 10g 性能调整与优化概览 在企业级应用环境中,Oracle 数据库的性能直接影响到系统的响应速度和稳定性。Oracle 10g 版本作为一款成熟且广泛应用的企业级数据库管理...
在Oracle数据库系统中,"Latch Contention"是一个关键性能问题,它涉及到多个进程或线程在尝试获取同一资源锁(Latch)时的竞争。这通常会导致系统性能下降,因为当一个进程等待另一个进程释放Latch时,数据库操作...
《Oracle Database 11g Performance Tuning Recipes》是一本专注于Oracle数据库11g性能优化的专业书籍,由国外的专家编写,旨在帮助读者深入理解和实践Oracle数据库的性能调优技术。这本书以其清晰的结构和易读性...
### Oracle 11G Performance Tuning - sg2 #### 标题解读: “Oracle 11G Performance Tuning - sg2” 这个标题明确指出了文档的主要内容是关于 Oracle Database 11g 的性能调优。其中,“sg2”可能是指该文档属于...
8.2 并行处理的机制 189 8.3 读懂一个并行处理的执行计划 191 8.4 一个很常见的并行执行等待事件 192 8.5 并行执行的适用范围 194 8.5.1 并行查询 194 8.5.2 并行ddl操作 195 8.5.3 并行dml操作 203 8.6 并行执行的...
### Oracle Library Cache Latch 竞争的解决 在Oracle数据库中,`Library Cache Latch`竞争是一个常见的性能瓶颈问题,通常会导致系统响应时间增加、性能下降等问题。本篇文章将详细探讨如何诊断并解决该问题。 ##...
Oracle Latch 是数据库管理系统Oracle中的一个重要概念,它是一种同步机制,用于控制对共享资源的并发访问。在Oracle中,Latches被广泛应用于保护各种数据库结构,确保数据的一致性和完整性。Oracle Latch 在多线程...
Latch是Oracle数据库中一种重要的低级别内存保护机制,主要用于确保对内存结构的并发访问能够有序地进行。它是一种较为简单的内存结构,其大小大约在100-200字节之间,具体取决于Oracle版本以及运行平台的不同。自...