浅谈Oracle的Lock和Latch

首先谈谈它们的共同点吧:它们本质上都是一种对资源的独占锁定,都是由并发引起(如 果数据库只有一个session,就谈不上锁定)。

接着着重谈谈它们的不同点:

首先,它们的目的不一样,enqueue (即Lock,Oracle官方文档混合使用这两个名词,在等 待事件里,可以看到大量的enqueue,其实就是lock)是为了解决业务层面的数据争用,而 latch是为了解决内存资源的争用。

其次,它们的运行方式不一样,enqueue采用排队 方式,先到先得,而latch的竞争近乎无序,以一种随机的方式,先到不一定先得,得靠抢, 而且它还以一种时间片轮训的方式,不会一直霸占,即时还没运行完,时间片一到也。

第三,会话持有的时长不一样,enqueue根据业务情况,可能会持有较长时间,而 latch通常非常短。第四,引起的原因不一样,enqueue太多通常是业务设计的问题,而latch 过多,一般是数据库层面的问题(如未使用绑定变量、表或索引热块等)。

查看更多精彩内容:http://www.bianceng.cn/database/Oracle/

时间: 2024-09-20 04:24:19

浅谈Oracle的Lock和Latch的相关文章

浅谈Oracle数据库外部身份认证研究

以下的文章主要是浅谈Oracle数据库的外部身份认证实际研究,我在一个信誉度很好的网站,找到了一个关于浅谈Oracle数据库外部身份认证的一些实用性很强的相关资料,拿出来供大家分享. 一.服务器上使用操作系统验证 1.配置SQLNET.ORA文件 参数NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)表明解析客户端连接时所用的主机字符串的方式.TNSNAMES表示采用TNSNAMES.ORA文件来解析:ONAMES表示Oracle使用自己的名称服

浅谈Oracle数据库的建模与设计_oracle

正在看的ORACLE教程是:浅谈Oracle数据库的建模与设计.要开发一个基于数据库的应用系统,其中最关键的一步就是整个系统所依据的数据库的建模设计,从逻辑的到物理的,一个环节疏于设计,整个的应用系统便似建立在危房之上,随着开发过程的不断深入,它要随时面临着各种难  以预料的风险,开发者要为修改或重新设计没有设计好的数据库系统而付出难以预料的代价.所以,一个良好的数据库设计是高效率的系统所必须的.  一.逻辑建模  数据库设计的方法因具体数据库而异,但是建模阶段的相同的,所以可以用一些通用的工具

浅谈Oracle ERP上线准备的五条重要经验

以Oracle ERP(EBS,E-Business Suite)为例,作为先进的企业信息化旗舰产品,不仅有优秀的技术构架,更重要的是其中蕴含的经由资深行业顾问提炼的最佳解决方案,这才是ERP的精髓所在.企业在实施ERP系统时,除了要选择优秀咨询公司和资深顾问团队以外,更要做到"三分技术,七分管理 ",从各方面做好准备和协调工作,这样才能取得较短的实施周期和完美的上线开局.ERP系统的效果(无论是管理层面,还是运营层面)是在使用二.三年后才会真正体现出来,而上线前的咨询.业务流重组和规

浅谈Oracle的行级锁

㈠ 单实例Oracle locking机制 locking机制的三大组成部分: ① resource structure Oracle对于每个需要"并发访问"的资源,都在SGA中用一个数据结构来描述它 这个结构叫resource structure 这个数据结构有三个成员:owner.waiter和converter 这是3个指针 指向由lock structure组成的链表的指针 其中,converter和waiter有些区别: 如果某个操作先后需要两种不同模式的锁,比如,先S,后X

浅谈Oracle外部身份认证研究

一.服务器上使用操作系统验证     1.配置SQLNET.ORA文件     参数NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)表明解析客户端连接时所用的主机字符串的方式    TNSNAMES表示采用TNSNAMES.ORA文件来解析:    ONAMES表示Oracle使用自己的名称服务器(Oracle Name Server)来解析,目前Oracle建议使用轻量目录访问协议LDAP来取代ONAMES:    HOSTNAME表示使用h

浅谈ORACLE 10G 闪回恢复区

oracle|恢复   何为闪回恢复区 Oracle 10g 有一项新功能称为:自动的基于磁盘的备份与恢复( Automatic Disk-Based Backup and Recovery ).实现该功能的基础为本文要讲述的闪回恢复区( Flash Recovery Area ).闪回恢复区是 Oracle 10g 中的新事物.简单的说,闪回恢复区是一块用以存储恢复相关的文件的存储空间.允许用户集中存储所有恢复相关的文件.   闪回恢复区可以放在如下几种存储形式上: l         目录

浅谈Oracle事务开始与结束

事务是用来分割数据库活动的逻辑工作单元,事务即有起点,也有终点: 当下列事件之一发生时,事务就开始了: 连接到数据库上,并执行了第一天 DML 语句: 当前一个事务结束后,又输入了另外一条 DML 语句: 当下列事件之一发生时,事务就结束了: 执行 COMMIT 或 ROLLBACK语句:执行一条 DLL语句,例如 CREATE TABLE 语句:在这种情况下, 会自动执行 COMMIT 语句:执行一条 DCL语句,例如GRANT语句:在这种情况下,会自动执行COMMIT语句: 断开与数据库的连

浅谈Oracle应用设计

我们通常将最常用的应用分为2种类型:联机事务处理类型(OLTP),决策支持系统(DSS). 一.联机事务处理(OLTP) 该类型的应用是高吞吐量,插入.更新.删除操作比较多的系统,这些系统以不断增长的大容量数据为特征,它们提供给成百用户同时存取,典型的OLTP系统是订票系统,银行的业务系统,订单系统.OTLP的主要目标是可用性.速度.并发性和可恢复性. 当设计这类系统时,必须确保大量的并发用户不能干扰系统的性能.还需要避免使用过量的索引与cluster 表,因为这些结构会使插入和更新操作变慢.

浅谈oracle中SYS_CONTEXT上下文关系以及TCP和IPC两种连接方式

前天维护数据库,在执行某个的脚本时,发现结果与实际情况有所出入.对该脚本进行检查,发现其中包含有一条子查询语句: SELECT sys_context('userenv','ip_address') from DUAL; 在sqlplus内执行,返回结果为空.经翻阅资料,发现该语句的作用是返回一个上下文的参数值.其中sys_context是一个oracle关键字,用于查询一个命名空间(namespace)中某个参数(parameter)的值.Oracle默认建立的命名空间为"userenv&qu