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的事务隔离级别和读一致性相关推荐

  1. oracle设置事务隔离级别为读已提交,oracle的事务隔离级别和读一致性

    oracle提供了三个隔离级别: 1.读提交 ,简而言之只能读取语句开始执行前提交的数据 2.串行,这个好理解,就是事务串行运行,避免经典的三个场景-脏读.不可重复读.幻读. 3.只读,oracle已 ...

  2. 数据库事务隔离级ORACLE数据库事务隔离级别介绍

    本文系转载,原文地址:http://singo107.iteye.com/blog/1175084 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted.Read committ ...

  3. pb设置Oracle事务的隔离级别,Oracle的事务隔离级别

    ANSI/ISO SQL规定了四种事务隔离级别,分别是:read uncommitted,read committed,repeatable read,serializable ORACE提供了SQ9 ...

  4. ORACLE数据库事务隔离级别

    为什么80%的码农都做不了架构师?>>>    事务隔离级别:一个事务对数据库的修改与并行的另一个事务的隔离程度. 两个并发事务同时访问数据库表相同的行时,可能存在以下三个问题: 1 ...

  5. 「Mysql 事务 隔离级别」 读提交和可重复读的区别

    一.前提 首先我们应该先明确 Mysql的四种隔离级别和四种对应的现象 隔离级别: 读未提交.读已提交.可重复读.串行化 现象: 脏读.丢失修改.不可重复读.幻读 二.先说结论 读提交和可重复读都是一 ...

  6. 看完这篇文章,让你彻底理解事务隔离级别(读未提交、读已提交、可重复读、序列化)

    对于不同的事务,采用不同的隔离级别分别有不同的现象.主要有下面3种: 1.脏读(dirty read):一个事务可以读取另一个尚未提交事务的修改数据. 2.不可重复读(nonrepeatable re ...

  7. oracle的默认隔离机制,Oracle默认事务隔离级别

    首先session 1中两次获取同一条数据: -- 关于oracle事务隔离级别 session 1 declare v_old VARCHAR2(32); v_now VARCHAR2(32); v ...

  8. 事务隔离级别---幻读的解读

    幻读本身并没有出错,但是比如: 事务A对tab表查询,有五条数据,然后事务B对tab增加了五条数据,事务A再次读tab表,会读到十条数据,这个时候就会产生疑问,究竟是第一次读的数据是正确的还是第二次读 ...

  9. 事务,Oracle,MySQL及Spring事务隔离级别

    一.什么是事务:  事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. 二.事务特性(4种):  原子性 (atomicity):强调事务的不可分割: 一致性 (consi ...

最新文章

  1. drupal 6.0 入门教程
  2. MapReduce-Combiner规约-原理分析
  3. stream分组计数_Java Stream:第2部分,计数始终是计数吗?
  4. 企业级账号 版本更新总结
  5. ArrayDeque 双端队列
  6. 图---邻接矩阵 建立,深度遍历,广度遍历
  7. DiscuzX系列命令执行分析公开(三连弹)
  8. matlab中给三维点云数据增加随机噪声_诺斯顿测量|三维激光扫描技术让化工厂改造变得更轻松和高效...
  9. Python字符串endswith()
  10. 2012网页设计趋势(上)
  11. 布局篇(1)—If you love css …
  12. lingo17.0软件工具
  13. python开发mbus程序_一种PMBus总线电源模块的控制与实现
  14. ubuntu前置耳机孔没声音的解决办法
  15. eclipse开发桌面应用软件程序教程
  16. python中如何将矩阵中的元素赋值为两倍_python给矩阵内元素赋值
  17. 招商银行笔试题 公司年会
  18. TS + vue3.2 + vite2 + element-plus 通用弹框组件封装
  19. 负载均衡之TCP连接复用与缓冲
  20. html火焰字效果,ps怎样制作燃烧的火焰字 巧用图层样式给字体增加火焰特效教程...

热门文章

  1. Dubbo 原理和机制详解
  2. HTML5用canvas制作飞机大战小游戏
  3. 20220316在MT6739的android10下增加VT设备tty1
  4. pandas时序数据分析
  5. justnews 5.7.3开心版分享
  6. 从零开始学riscv之建房子,先打地基
  7. ESP32开发之旅——AS608指纹识别模块
  8. JS 随机数和不重复的随机数
  9. mega16单片机学习地图
  10. Android热修复原理(HotFix)初涉