Oracle事物

embedded/2024/9/24 12:38:03/

在 Oracle 中,当你开启一个事务(例如,通过执行 BEGIN 语句或直接执行 DML 语句如 INSERTUPDATEDELETE )时,以下行为会发生:

1. **行级锁**:当你修改数据时(例如,执行 INSERTUPDATEDELETE ),Oracle 会在受影响的行上加上行级锁。其他尝试修改相同行的事务将被阻塞,直到第一个事务提交或回滚。

2. **读一致性**:其他事务仍然可以读取正在被修改的数据,但他们会看到数据在事务开始之前的状态。这是由于 Oracle 的多版本并发控制(MVCC)机制,提供了读一致性。因此,在一个事务进行时,其他查询可以读取数据而不会被阻塞。

3. **阻塞行为**:如果另一个事务尝试修改与第一个事务锁定的相同行,它将被阻塞,直到第一个事务完成。如果它尝试读取被锁定的行,它将看到事务开始之前的旧版本的数据,而不会被阻塞。

示例场景

1. **事务 A** 开始并更新一个表中的行。

2. **事务 B** 尝试更新相同的行。事务 B 将被阻塞,直到事务 A 提交或回滚。

3. **事务 C** 尝试在事务 A 仍然开放时读取相同的行。事务 C 将看到该行的旧版本(在事务 A 更新之前),并且不会被阻塞。

总之,在 Oracle 中,当一个事务处于活动状态时: - 其他事务可以读取数据,而不会被阻塞。 - 其他事务尝试修改相同数据时将被阻塞,直到第一个事务完成


http://www.ppmy.cn/embedded/116096.html

相关文章

Python基础学习(3)

目录 一,函数 1,函数的定义 2,函数的参数 1,默认值 2,传参 3,返回值 4,变量的作用域 5,函数的调用 二,常用数据结构 1,列表 列表的定义 列表的特性…

828华为云征文|华为云Flexus X实例docker部署最新Appsmith社区版,搭建自己的低代码平台

828华为云征文|华为云Flexus X实例docker部署最新Appsmith社区版,搭建自己的低代码平台 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Ng…

Blender软件三大渲染器Eevee、Cycles、Workbench对比解析

Blender 是一款强大的开源3D制作平台,提供了从建模、雕刻、动画到渲染、后期制作的一整套工具,广泛应用于电影、游戏、建筑、艺术等领域。 渲染101云渲染云渲6666 相比于其他平台,如 Autodesk Maya、3ds Max 或 Cinema 4D,Blende…

Ubuntu的基本用法与指令(为后面学习ROS打基础)

目录 0.声明:此博客的部分内容来自B站up主 机器人工匠阿杰,欢迎大家前往up主视频区学习(本人正在跟随此up主的视频学习无人机的部分相关知识) 1.win空格(切换中英文) 2.终端指令 1.ls:显示主…

RabbitMQ08_保证消息可靠性

保证消息可靠性 一、生产者可靠性1、生产者重连机制(防止网络波动)2、生产者确认机制Publisher Return 确认机制Publisher Confirm 确认机制 二、MQ 可靠性1、数据持久化交换机、队列持久化消息持久化 2、Lazy Queue 惰性队列 三、消费者可靠性1、消费者…

第二讲 数据结构

链表 单链表 单链表的用途在于编写领接表,领接表的用途在于存储图和树 826. 单链表 - Acwing题库 数据结构: e[N]:用于存储节点的值的数组。ne[N]:作为“下一个”指针的数组,用于连接节点。e[]和ne[]是通过下标关联…

Docker Compose 启动 PostgreSQL 数据库

Docker Compose 启动 PostgreSQL 数据库 文章目录 Docker Compose 启动 PostgreSQL 数据库一 配置 docker-compose.pgsql.yml二 yml 配置说明三 启动容器四 停止容器 本文介绍了如何通过 Docker Compose 快速启动 PostgreSQL 数据库。在 docker-compose.pgsql.yml 文件中&…

102.SAPUI5 sap.ndc.BarcodeScannerButton调用摄像头时,localhost访问正常,使用IP访问失败

目录 原因 解决办法 1.修改谷歌浏览器的setting 2.在tomcat中配置https访问 参考 使用SAPUI5的sap.ndc.BarcodeScannerButton调用摄像头时,localhost访问正常,使用IP访问时,一直打不开摄像头,提示getUserMedia()问题。 原因…