千家信息网

Latch和Lock的区别

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,Latch是Oracle提供的轻量级锁资源,他用于快速,短时间的锁定资源,防止多个并发进程同时修改访问某个共享资源,他只工作在内存中, 我们可以不大准确的说,内存中资源的锁叫latch,数据库对象(表
千家信息网最后更新 2026年11月03日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中是非常少见的)

进程 内存 资源 数据 同时 对象 过程 事务 作用 共享资源 多个 实例 性能 数据库 时间 机制 模式 先来 死锁 查询 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 有马互联网科技 致聘互联网科技 深圳天众互联网科技公司 菲比寻常互联网科技 佩信高科技互联网 上海电发互联网科技有限公司 西藏七维空间互联网科技有限公司 团飞科技与伯堂互联网服务平台 互联网金融科技公司干啥的 成都铂石互联网科技做什么的 新兴科技互联网创新大赛颁奖典礼 坤平互联网科技 互联网科技大赛获奖感言 每天都有哪些好的互联网科技 深圳互联网科技的发展 广州富喜互联网络科技 四川互联网展示科技馆设计 瑞安市蟠桃会互联网科技有限公司 科技互联网企业在行动 中国主要互联网科技公司 A股互联网金融科技公司 中国互联网科技发展 友谊互联网络科技 火传媒上海互联网科技 互联网科技公司有哪些 国外互联网科技网站 互联网科技大奖都有哪些公司 明优互联网科技有限公司 互联网科技公司营业执照怎么办理 深圳互联网科技园地址
0