oracle的事务隔离级别和读一致性
oracle提供了三个隔离级别:
1.读提交 ,简而言之只能读取语句开始执行前提交的数据
2.串行,这个好理解,就是事务串行运行,避免经典的三个场景-脏读、不可重复读、幻读。
3.只读,oracle已经实现的只读模式。
--
这些都很容易理解,问题的关键是解决一些实际的问题,例如典型的汽车票销售。
1.对于查票事务而言,使用简单的读提交隔离级别即可,读取那些可售票(状态不是已经售出或者正在销售的)
2.对于售票事务而言,只需要简单使用窜行隔离级别即可,在开始购买时候,先设置标记为正在销售,完成之后设置销售完毕,并提交事务。
具体简单的做法就是
set transaction isolation level serializable;
update tickets a set a.status='sailing' where a.seat_no=?;
如果其它事务也企图这么做,但当前事务还没有提交,那么就会引发ORA-08177: Cannot serialize access for this transaction
应用遇到这条信息的时候,就知道这个座位已经被临时占用了,可以换一个座位。
如果为了避免可能的高概率异常,选票可以放在一个过程中处理,避免比必要的网络传输。
--
如果在一个高并发的应用中,例如像12306那样的应用,如何避免负载过大? 理论上使用oracle的exdata即可解决这种,当然在应用设计上也需要有一些好的想法
转载于:https://www.cnblogs.com/lzfhope/p/7730394.html
oracle的事务隔离级别和读一致性相关推荐
- oracle设置事务隔离级别为读已提交,oracle的事务隔离级别和读一致性
oracle提供了三个隔离级别: 1.读提交 ,简而言之只能读取语句开始执行前提交的数据 2.串行,这个好理解,就是事务串行运行,避免经典的三个场景-脏读.不可重复读.幻读. 3.只读,oracle已 ...
- 数据库事务隔离级ORACLE数据库事务隔离级别介绍
本文系转载,原文地址:http://singo107.iteye.com/blog/1175084 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted.Read committ ...
- pb设置Oracle事务的隔离级别,Oracle的事务隔离级别
ANSI/ISO SQL规定了四种事务隔离级别,分别是:read uncommitted,read committed,repeatable read,serializable ORACE提供了SQ9 ...
- ORACLE数据库事务隔离级别
为什么80%的码农都做不了架构师?>>> 事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度. 两个并发事务同时访问数据库表相同的行时,可能存在以下三个问题: 1 ...
- 「Mysql 事务 隔离级别」 读提交和可重复读的区别
一.前提 首先我们应该先明确 Mysql的四种隔离级别和四种对应的现象 隔离级别: 读未提交.读已提交.可重复读.串行化 现象: 脏读.丢失修改.不可重复读.幻读 二.先说结论 读提交和可重复读都是一 ...
- 看完这篇文章,让你彻底理解事务隔离级别(读未提交、读已提交、可重复读、序列化)
对于不同的事务,采用不同的隔离级别分别有不同的现象.主要有下面3种: 1.脏读(dirty read):一个事务可以读取另一个尚未提交事务的修改数据. 2.不可重复读(nonrepeatable re ...
- oracle的默认隔离机制,Oracle默认事务隔离级别
首先session 1中两次获取同一条数据: -- 关于oracle事务隔离级别 session 1 declare v_old VARCHAR2(32); v_now VARCHAR2(32); v ...
- 事务隔离级别---幻读的解读
幻读本身并没有出错,但是比如: 事务A对tab表查询,有五条数据,然后事务B对tab增加了五条数据,事务A再次读tab表,会读到十条数据,这个时候就会产生疑问,究竟是第一次读的数据是正确的还是第二次读 ...
- 事务,Oracle,MySQL及Spring事务隔离级别
一.什么是事务: 事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. 二.事务特性(4种): 原子性 (atomicity):强调事务的不可分割: 一致性 (consi ...
最新文章
- drupal 6.0 入门教程
- MapReduce-Combiner规约-原理分析
- stream分组计数_Java Stream:第2部分,计数始终是计数吗?
- 企业级账号 版本更新总结
- ArrayDeque 双端队列
- 图---邻接矩阵 建立,深度遍历,广度遍历
- DiscuzX系列命令执行分析公开(三连弹)
- matlab中给三维点云数据增加随机噪声_诺斯顿测量|三维激光扫描技术让化工厂改造变得更轻松和高效...
- Python字符串endswith()
- 2012网页设计趋势(上)
- 布局篇(1)—If you love css …
- lingo17.0软件工具
- python开发mbus程序_一种PMBus总线电源模块的控制与实现
- ubuntu前置耳机孔没声音的解决办法
- eclipse开发桌面应用软件程序教程
- python中如何将矩阵中的元素赋值为两倍_python给矩阵内元素赋值
- 招商银行笔试题 公司年会
- TS + vue3.2 + vite2 + element-plus 通用弹框组件封装
- 负载均衡之TCP连接复用与缓冲
- html火焰字效果,ps怎样制作燃烧的火焰字 巧用图层样式给字体增加火焰特效教程...