对oracle 的 lock 和latch 概念和区别不是很了解 ? 对oracle 的 lock 和latch 概念和区别不是很了解 ?希望能简单的说说 (书上翻译过来的比较生涩。希望能简单说说 ) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要简单的哈?latch是锁内存里的东西lock就是一般学的表啊行啊什么的锁呵呵 2个都是并发控制机制想知道如楼上所言 latch一般不用管 是内存自动处理产生的俄dba只需要分析就可以拉 对吗? 入门 深入的讲讲好吗 以前参加过oracle的培训 知道 但是当时理解不够深入 http://lzfhope.blog.163.com/blog/static/6363992200951041532317/先看看吧 没有办法对只是的渴求是无止境的 在csdn帮助下 突飞猛进现在自发的研究疑难 ----------------自槽,苦衷求乐 Oracle中有关Latch的介绍 Latch是Oracle提供的轻量级锁资源,用于快速,短时间的锁定资源,防止多个并发进程同时修改访问某个共享资源,他只工作在内存中,我们可以不大准确的说,内存中资源的锁叫latch,数据库对象(表,索引等)的锁叫Lock。"); 本文向各位阐述Oracle的Latch机制,Latch,用金山词霸翻译是门插栓,闭锁,专业术语叫锁存器,我开始接触时就不大明白为什么不写Lock,不都是锁吗?只是翻译不同而以?研究过后才知道两者有很大的区别。 Latch是Oracle提供的轻量级锁资源,他用于快速,短时间的锁定资源,防止多个并发进程同时修改访问某个共享资源,他只工作在内存中, 我们可以不大准确的说,内存中资源的锁叫latch,数据库对象(表,索引等)的锁叫Lock。比如数据缓存中的某个块要被读取,我们会获得这个块的 latch,这个过程叫做pin,另外一个进程恰好要修改这个块,他也要pin这个块,此时他必须等待,当前一个进程释放latch后才能pin住,然后 修改,如果多个进程同时请求的话,他们之间将出现竞争,没有一个入队机制,一旦前面进程释放所定,后面的进程就蜂拥而上,没有先来后到的概念,这个和 Lock是有本质区别的,这一切都发生的非常快,因为Latch的特点是快而短暂,当然这个只是大致过程,细节部分在后面讨论 先来看下Latch和Lock的区别, 1. Latch是对内存数据结构提供互斥访问的一种机制,而Lock是以不同的模式来套取共享资源对象,各个模式间存在着兼容或排斥,从这点看出,Latch 的访问,包括查询也是互斥的,任何时候,只能有一个进程能pin住内存的某一块,幸好这个过程是相当的短暂,否则系统性能将没的保障,现在从9I开始,允 许多个进程同时查询相同的内存块,但性能并没有想象中的好。 2. Latch只作用于内存中,他只能被当前实例访问,而L ock作用于数据库对象,在RAC体系中实例间允许Lock检测与访问 3. Latch是瞬间的占用,释放,Lock的释放需要等到事务正确的结束,他占用的时间长短由事务大小决定 4. Latch是非入队的,而Lock是入队的 5. Latch不存在死锁,而Lock中存在(死锁在Oracle中是非常少见的) lock就是一般学的表啊行啊什么的锁呵呵 lock就是一般学的表啊行啊什么的锁呵呵 all_tab_columns的问题 关于建立分区索引的一点问题(如何使分区索引应用到已经有的分区) Oracle 复杂sql 语句,在线等..... 倒地having子句支持列别名么? Oracle 10g SQLPLUS 如何查看当时建表的create table时的语句呢? 我的日期怎么无法正确显示?初学者谢谢 这样的视图可以实现吗? 急!Oracle8.05件不了表名是中文的表 ASP连接Oracle数据库? 写触发器执行语句,编译器报错,求助 oracle的system用户下如下几张表是什么用处的? 请教一个关于Oracle配置的问题。
lock就是一般学的表啊行啊什么的锁呵呵
以前参加过oracle的培训
知道 但是当时理解不够深入
对只是的渴求是无止境的
在csdn帮助下 突飞猛进
现在自发的研究疑难 ----------------自槽,苦衷求乐
Latch是Oracle提供的轻量级锁资源,用于快速,短时间的锁定资源,防止多个并发进程同时修改访问某个共享资源,他只工作在内存中,我们可以不大准确的说,内存中资源的锁叫latch,数据库对象(表,索引等)的锁叫Lock。
");
本文向各位阐述Oracle的Latch机制,Latch,用金山词霸翻译是门插栓,闭锁,专业术语叫锁存器,我开始接触时就不大明白为什么不写Lock,不都是锁吗?只是翻译不同而以?研究过后才知道两者有很大的区别。
Latch是Oracle提供的轻量级锁资源,他用于快速,短时间的锁定资源,防止多个并发进程同时修改访问某个共享资源,他只工作在内存中, 我们可以不大准确的说,内存中资源的锁叫latch,数据库对象(表,索引等)的锁叫Lock。比如数据缓存中的某个块要被读取,我们会获得这个块的 latch,这个过程叫做pin,另外一个进程恰好要修改这个块,他也要pin这个块,此时他必须等待,当前一个进程释放latch后才能pin住,然后 修改,如果多个进程同时请求的话,他们之间将出现竞争,没有一个入队机制,一旦前面进程释放所定,后面的进程就蜂拥而上,没有先来后到的概念,这个和 Lock是有本质区别的,这一切都发生的非常快,因为Latch的特点是快而短暂,当然这个只是大致过程,细节部分在后面讨论
先来看下Latch和Lock的区别,
1. Latch是对内存数据结构提供互斥访问的一种机制,而Lock是以不同的模式来套取共享资源对象,各个模式间存在着兼容或排斥,从这点看出,Latch 的访问,包括查询也是互斥的,任何时候,只能有一个进程能pin住内存的某一块,幸好这个过程是相当的短暂,否则系统性能将没的保障,现在从9I开始,允 许多个进程同时查询相同的内存块,但性能并没有想象中的好。
2. Latch只作用于内存中,他只能被当前实例访问,而L ock作用于数据库对象,在RAC体系中实例间允许Lock检测与访问
3. Latch是瞬间的占用,释放,Lock的释放需要等到事务正确的结束,他占用的时间长短由事务大小决定
4. Latch是非入队的,而Lock是入队的
5. Latch不存在死锁,而Lock中存在(死锁在Oracle中是非常少见的)