拓扑园

  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
    • 标准化文档系列
  • Oracle基础知识
    • LLL的Oracle培训(分类)
    • LLL的docker培训(分类)
    • 标准化文档系列--(分类)
    • Oracle核心经典分析(分类)
    • 图灵小队----(分类并包含以下文章)
    • --MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • --PG安装配置于RHEL/9X系列-运行环境最优配置
    • --自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • --图灵小队—Oracle/PostgreSQL下创建一个用户测试表(自行定义数据行)
    • --图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • --图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • --图灵小队-Oracle常用性能查询SQL语句(文章)
    • --图灵小队-Oracle数据库上线前检查(文章)
    • --图灵小队-Oracle常用SQL语句(文章)
    • --图灵小队-Oracle脚本合集(文章)
    • --图灵小队-Oracle技巧记录(文章)
    • ADG
    • RAC
    • ASM
    • OGG
    • RMAN
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
  • MySQL相关
  • Linux
    • kubernetes
    • docker
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 新框架系统集合
    • 工作文档
    • EBS数据文件扩容
    • VMware虚拟化
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • K-Studing
    • LG-MySQL
    • LG-Docker/K8S
    • LG-PostgreSQL
    • LG-ORACLE_BBED
    • LG-ORACLE
    • LG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
Oracle数据库恢复专家团队:TEL:18562510581(微信同号);QQ:284833194;QQ群:496333360
天高任鸟飞
  1. 首页
  2. Oracle基础知识
  3. Oracle核心经典分析
  4. 正文

Oracle中latch和lock的区别

2023年11月13日 36点热度 0人点赞 0条评论

目录

  • 1、作用范围:
  • 2、争用方式:
  • 3、控制对象:
  • 4、类型:
  • 5、阻塞情况:
  • 6、总体来说

在 Oracle 数据库中,latch(互斥锁)和 lock(锁)是两个不同的概念,它们的区别如下:

1、作用范围:

Latch:用于保护共享结构的互斥控制,例如保护内存结构或者数据结构。

Lock:用于实现事务的隔离和并发控制,用于保护特定的数据资源(如表、行)。

2、争用方式:

Latch:采用自旋方式(spin)来争用资源,即在获取不到资源时,进程会反复尝试获取而不会进入阻塞状态。

Lock:采用阻塞方式来争用资源,当一个事务获取不到资源时,会进入阻塞状态等待其他事务释放资源。

3、控制对象:

Latch:用于控制并发读取内存结构,如控制缓冲池、共享池等。

Lock:用于控制事务对数据资源的并发操作,如锁定表、行、索引等。

4、类型:

Latch:Oracle 数据库中有多种类型的 Latch,如共享 Latch(Shared Latch)和排它 Latch(Exclusive Latch)等,每种类型的 Latch 用于不同的目的。

Lock:Oracle 数据库中有多种类型的 Lock,如共享锁(Shared Lock)和排它锁(Exclusive Lock)等,根据事务隔离级别的不同,事务可以获取不同类型的锁。

5、阻塞情况:

Latch:在竞争激烈的情况下,Latch 争用可能导致进程需要等待获取资源,但等待时间通常较短。Latch 通常会在很短时间内释放,以减少争用。

Lock:如果一个事务持有某个资源的排它锁(X锁),其他事务想要获取该资源的排它锁时,会被阻塞,需要等待该事务释放锁。

6、总体来说

latch 是用于内存结构的互斥控制,采用自旋方式,由 Oracle 数据库自动管理;

而 lock 是用于数据资源的并发控制,采用阻塞方式,由应用程序或事务控制语句(如 SELECT FOR UPDATE)显式申请和释放。

它们在作用范围、争用方式、控制对象、类型、阻塞情况等方面有所差异。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2023年11月18日

admin

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号