Oracle 事务

2023-11-19

一、事务的基本概念

  事务(Transaction),一般 是指要做的或所做的事情,通常这件事会包含多个步骤。事务中的多个步骤处理起来就像处理一个步骤一样,要么全部成功,要么全部失败。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。

  事务的目的就是为了保证数据的完整性,以银行转换业务为例:

  A用户向B转账1000元,步骤如下:

  1)A用户账户余额减少1000元;

  2)B用户账户余额增加1000元;

  3)记录A用户的交易日志。

  4)记录B用户的交易日志。

  一笔转帐交易将产生四次数据库操作,要么全部都成功,如果有一个失败,其它操作也应该全部被撤销。

  转账交易有四次数据库操作,即四条SQL语句,第一条SQL执行的时候是事务的开始,如果全部的SQL语句执行成功,提交事务,如果有任何一条SQL语句执行失败,回滚事务。

  commit; – 提交事务。

  rollback; – 回滚事务。

二、事务的特征

  事务是保证数据完整性的一种手段,事物具备ACID原则。
在这里插入图片描述
  未提交事务之前的操作是存放在缓冲区中,当提交了事务之后就保存在数据库中。

1.事务的原子性(Atomicity):

  是指一个事务要么全部执行,要么不执行,也就是说一个事务不可能只执行了一半就停止了,要一气呵成。比如你从取款机取钱,这个事务可以分成两个步骤:1划卡,2出钱。不可能划了卡,而钱却没出来。这两步必须同时完成,要么就不完成。

2.事务的一致性(Consistency):

  例如,完整性约束了a+b=10,一个事务改变了a,那么b也应该随之改变。

3.独立性(Isolation):

  事务的独立性也有称作隔离性,是指两个以上的事务不会出现交错执行的状态。因为这样可能会导致数据不一致。

4.持久性(Durability):

  事务的持久性是指事务执行成功以后,该事务对数据库所作的更改便是持久的保存在数据库之中,不会无缘无故的回滚。

三、事务锁

1.多个会话同时处理一条数据

  每一个session都进行自己的事物处理,如果现在两个session同时操作同一条数据,该如何呢?

  两个session更新了同一条数据。此时就会出现锁的情况。即:在第一个session没有提交或回滚之前,第二个session要一直等待着更新完成。所以在事务处理过程之中,是存在行级锁定的概念,即:在提交或回滚之前,只能够有一个session操作数据,事物的隔离性。这个就像是大家一起用一个公共厕所一样,一个人在使用,另一个人处于等待。

  (1)现在在第一个窗口修改 account=‘1003’ 的记录的 je 值,并且对这个资源上锁
在这里插入图片描述

  (2)在第二个窗口同时对这条记录的 je 值进行修改,会处于等待中。
在这里插入图片描述
  (3)第一个窗口提交事务,释放锁,释放资源。那么第二个窗口会得到等待资源,并且在第二个窗口修改。

在这里插入图片描述

在这里插入图片描述

2.注意事项

(1)避免锁的竞争

  对个会话对同一个表进行操作并不能提高效率

(2)不要产生大事务

  事务处理的数据量越大,对数据库的冲击就越大

(3)不要产生长事务

  事务越长(处理时间长)越容易产生锁竞争,时间越长持有锁的时间就越长。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle 事务 的相关文章

随机推荐

  • MIPI简介(三)——CSI-2的概述与分层方式

    CSI Camera Serial Interface 是由MIPI联盟下Camera工作组指定的接口标准 CSI 2是MIPI CSI第二版 是一个单或双向差分串行界面 包含时钟和数据信号 主要由应用层 协议层 物理层组成 最大支持4通道
  • Latex字体字号设置

    导言区 documentclass 12pt article book report letter 通过文档类来改变文档结构类型 usepackage ctex 使用中文注意 ctex宏包 UTF 8 xelatex newcommand
  • 因果推断-PSM的原理及python实现

    目录 一 背景 员工技能培训真的是浪费时间吗 二 PSM的原理及python实现 1 PSM的原理 1 1 计算倾向性得分 1 2 匹配对照组样本 1 3 平衡性检查 1 4 敏感度分析 2 PSM的python实现 一 背景 员工技能培训
  • [buuoj记录][ACTF2020 新生赛]Include

    圈重点 利用php filter伪协议进行文件包含 不多说 按照提示点进去 看到这 考虑 php input 伪协议 POST发送PHP代码 题目对php input 进行了过滤 那就再试试 php filter 伪协议 来进行包含 构造P
  • 系统测试主要测试类型

    功能测试 性能测试 GUI测试 易用性测试 兼容性测试 可靠性测试 安全性测试 文档测试 稳定性测试 健壮性测试 特定场景测试 等等 1 功能测试 规格书实现的功能是否相等或多 少某些 需要从需求和业务角度考虑 2 性能测试 测试软件匹配性
  • 非对称加密算法——RSA

    非对称加密算法 什么是非对称加密算法 对称式和非对称式加密的区别 对称式和非对称式加密的特点 案例实现 总结 什么是非对称加密算法 加密和解密使用的是不相同的密钥 用户A密钥加密后所得的信息 只能用用户A的解密密钥才能解密 如果知道了其中一
  • Selenium定位不到元素常见原因及解决办法

    Python3 Selenium定位不到元素常见原因及解决办法 一 问题描述 在做web应用的自动化测试时 定位元素是必不可少的 这个过程经常会碰到定位不到元素的情况 报错信息 no such element Unable to locat
  • 【第一趴】初探uni-app(uni-app发行者、uni-app推出背景、为什么选择uni-app)

    文章目录 写在前面 DCloud 当下跨平台开发存在的问题 为什么选择uni app 写在最后 写在前面 聚沙成塔 每天进步一点点 大家好我是几何心凉 不难发现越来越多的前端招聘JD中都加入了uni app 这一项 它也已经成为前端开发者不
  • Acwing - 算法基础课 - 笔记(数学知识 · 一)

    文章目录 数学知识 一 质数 质数的判定 分解质因数 朴素思路 优化 筛选质数 朴素筛法 埃氏筛法 线性筛法 小结 约数 求一个数的所有约数 求约数个数 求约数之和 求最大公约数 数学知识章节 主要讲解了 数论 组合计数 高斯消元 简单博弈
  • 100天大数据零基础入门到就业------第一天:Python环境安装

    前言 Python编程是一种通用的编程语言 开源 灵活 功能强大且易于使用 python最重要的特性之一是其用于数据处理和分析任务的丰富实用程序和库集 在当今的大数据时代 python以其支持大数据处理的易用特性越来越受欢迎 一 为什么要学
  • 手把手教你apk反编译

    我们都知道 Android程序打完包之后得到的是一个APK文件 这个文件是可以直接安装到任何Android手机上的 我们反编译其实也就是对这个APK文件进行反编译 第一步 得到反编译的工具 dex2jar 下载地址 http sourcef
  • 局域网内共享打印机的几种方式

    关于在局域网中共享打印机的一般流程和部分报错解决方案 时间 2022 06 07 设备 win10为主 其他版本也可参考 网络拓扑图大致如下 共享出自身的打印机 1 共享打印机 搜索打印机 打开打印机和扫描仪设置 选择打印机 点击管理 进入
  • 杂谈随感-1:革新与固守,多少技术人的宿命

    当一个新的技术革命发生的时候 有能力固守原有技术的人都是原有那个时代的精英 如果生命足够长 技术革新足够快 大多数革新者又都会变成固守者 成为新生革新者革新的对象 好在 个体生命的时间没有那么长 好在 新的技术革新并没有那么快 才有了一代代
  • 一门新的编程语言ecere简介

    ecere 简称eC 是加拿大学者jerome历时十二年开发的一门编译型编程语言 拥有C 项目的性能 Java的跨平台性以及Python语法的简洁性 ecere在C语言的基础上加入了面向对象的支持 但与C Java相比 它更像是一个C语言的
  • 互联网日报

    今日看点 吉利汽车科创板首发过会 抢滩 科创板整车第一股 新浪就 私有化 交易达成最终协议 总价25 9亿美元 淘宝直播12个月累计成交额超过3000亿元 用户同比增长160 滴滴货运日单量连续突破10万 持续拓展同城货运版图 360保险推
  • 多元线性回归超详细详解(一步一步手推公式)

    上一篇我们详细的讲解了一元一次线性回归算法 今天我们接着上一篇 为大家讲解多元线性回归是怎么一回事 何为多元 当我们的输入x只有一维属性时 我们称之为一元 就像我们判断人胖瘦 只需了解体重这一个属性 我们就可以辨识 当x包含n个属性 由n个
  • 基于战争优化算法(WSO)的光伏模型参数估计研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 算法文献来源 https ieeexplore ieee org
  • 锂电池生产全过程图解

    锂电池大致可分为两类 锂金属电池和锂离子电池 锂离子电池不含有金属态的锂 并且是可以充电的 我们所熟知的特斯拉电动汽车便是用的18650锂离子电池通过串并联组成的电池板 随着新能源汽车日渐火爆 动力电池行业也变得炙手可热 下面我们将通过图解
  • “多点”开花,独立走向新零售

    12月7日 亚洲最大的数字零售服务商多点Dmall正式向港交所递交招股说明书 在零售行业逐渐向线上线下一体化 店仓一体模式迈进之时 多点Dmall成为很多传统零售商转型路上的首选合作伙伴 给予了资本市场一定想象空间 但也有观点认为 在自带流
  • Oracle 事务

    文章目录 一 事务的基本概念 二 事务的特征 1 事务的原子性 Atomicity 2 事务的一致性 Consistency 3 独立性 Isolation 4 持久性 Durability 三 事务锁 1 多个会话同时处理一条数据 2 注