• Oracle事务处理—隔离级别



    基本概念:
    事务是把对数据库的一系列操作[dml]看作一个整体,要么全部成功,要么全部失败,利用事务我们可以保证数据的完整性,事务具有原子性

    事务和锁:
    当执行事务操作时[dml],oracle会在被作用的表上加锁,防止其它用户改表表的结构,这里对我们用户来讲是非常重要的

    提交事务:
    当执行使用commit语句可以提交事务,
    当执行了commit语句后,会确认事务的变化、结束事务、删除保存点、释放锁,
    当使用commit语句结束事务后,其它会话将可以查看到事务变化后的新数据

    回退事务:
    当执行rollback时,通过指定保存点可以回退到指定的点

    事务的几个重要操作:
    ①设置保存点
    savepoint 保存点名
    ②取消部分事务
    rollback to 保存点名
    ③取消全部事务
    rollback

    事务的隔离级别
    定义:事务的隔离级别用于指定事务的隔离程度

    隔离级别             脏读    不可重复读      幻读
    读已提交(Read committed)   x       V         V
    可串行化(Serializable )      x       x         x
    只读(read only)          x        x         x

    脏读[dirty reads]:[Oracle中不会出现脏读]
    当一个事务读取另一个事务尚[未提交]的修改时,产生脏读

    不可重复读[non-repetable reads]:
    同一查询在同一事务中多次进行,由于其它[提交事务]所做的[修改]或[删除],每次返回不同的结果集,此时发生非重复读

    幻读[phantom read]:
    同一查询在同一事务中多次进行,由于其它[提交事务]所做的[插入]操作,每次返回不同的结果集,此时发生幻读


    注意事项:
    ①Oracle默认的隔离级别:read committed
    ②serializable就是使事务看起来像是一个接着一个的顺序的执行
    ③serializable和read only 的区别:
    serializable:可执行DQl和DML
    read only:只能执行DQl

  • 相关阅读:
    04747_Java语言程序设计(一)_第9章_输入和输出流
    如何发布自己的服务---zookeeper
    django获取前端有multiple属性的select的多选项
    MYSQL性能优化的最佳20+条经验
    select * from 为什么效率低?
    django无法同步数据库 Error loading MySQLdb module: No module named ‘MySQLdb‘
    SQL的主键和外键和唯一约束
    为什么要把某些数据库表设计成一对一的关系
    Bootstrap 模态框(Modal)插件数据传值
    Django模板遍历字典的方法
  • 原文地址:https://www.cnblogs.com/qintangtao/p/2744780.html
Copyright © 2020-2023  润新知