Oracle事务的隔离
事务是指一些列操作的集合,它有4个属性:原子性(Automacity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),这4个属性简称为ACID。原子性指事务是一个整体的工作单元,要么全部执行,要么全部取消;一致性指事务操作完成时,必须使所有数据保持一致状态,事务执行成功则所有数据更新为一个新的状态,失败则保持原来执行前的状态;隔离性指事务在并发情况下,事务之间不会相互影响,一个事务的修改不会让另一个事务查看到它数据的中间状态;持久性是说事务提交后,对数据的修改就永久保存到数据库中了。
我们先看下事务不做隔离会产生的问题:
1、幻读:对插入而言的。事务1查询某张表,事务2往表里插入数据,事务1重新查询,把事务2插入的数据查出来了。
2、不可重复读:对修改或删除而言的。同上,事务1查询某张表的某条记录,事务2修改或删除该记录,事务1重新查询,发现数据变了或没了。
3、脏读:对未提交回滚操作而言的。事务1修改了某张表的某条记录,事务2查询后事务1回滚了,事务2读取了不存在的数据。
ANSI/ISO SQL92 标准中定义了四个隔离级别,在各隔离级别中,允许发生上述三种需要阻止的现象中的一种或多种:
1、读取未提交数据(read uncommitted)
2、读取已提交数据(read committed)
3、可重现的读取(repeatable read)
4、序列化(serializable)
通过指定不同的隔离级别,可避免上述一种或多种并发问题,见下图。

Oracle的隔离别只支持上面的2和4,1和3是不支持的。因为不支持1,所以想要脏读都没可能;而不支持3,要想避免不可重复读,可以直接使用4。另外Oracle还有一种叫只读的隔离级别,就是说该事务只支持读取,而不能增删改。
Oracle事务的隔离的更多相关文章
- Oracle事务之一:锁和隔离
Oracle事务之一:锁和隔离 一. 事务概述 事务管理是数据库处理的核心.数据库既要保证用户能并发地执行事务,还要保证数据库的一致性. 当第一条可执行的SQL开始执行,就隐形地开始了一个事务,直到遇 ...
- (转)mysql、sqlserver、oracle的默认事务的隔离级别
1.mysql的默认事务的隔离级别:可重复读取(repeatable read); 2.sqlserver的默认事务的隔离级别:提交读取(read committed); 3.oracle的默认事务的 ...
- 查看ORACLE事务隔离级别方法(转)
众所周知,事务的隔离级别有序列化(serializable),可重复读(repeatable read),读已提交(read committed),读未提交(read uncommitted).根据隔 ...
- Oracle事务隔离级别处理差异
Oracle事务隔离是事务读操作不同程度的数据隔离,分为READ_UNCOMMITTED.READ_COMMITTED(默认).SERIALIZABLE. Oracle事务隔离级别SERIALIZAB ...
- 事务的隔离级别以及oracle中的锁
事务的概念及特性 事务,一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit). 例如:在关系数据库中,一个事务可以是一条SQL语句,一组SQL语 ...
- Oracle事务
Oracle事务的ACID特性 原子性Atomicity:事务中的所有动作要么都发生,要么都不发生. 一致性Consistency:事务将数据库从一种状态转变为下一种一致状态. 隔离性Isolatio ...
- 浅谈Oracle事务【转载竹沥半夏】
浅谈Oracle事务[转载竹沥半夏] 所谓事务,他是一个操作序列,这些操作要么都执行,要么都不执行,是一个不可分割的工作单元.通俗解释就是事务是把很多事情当成一件事情来完成,也就是大家都在一条船上,要 ...
- 事务的隔离级别及mysql对应操作
/* 本次高并发解决之道 1,更改事务隔离级别为 read uncommitted读未提交 2,查询前设定延迟,延迟时间为随机 50-500 微秒 3,修改数据前将 超范围作为 限定修改条件 事务是作 ...
- JDBC学习笔记(7)——事务的隔离级别&批量处理
数据库事务的隔离级别 对于同时运行的多个事务, 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发问题:脏读: 对于两个事务 T1, T2, T1 读取了已经被 T2 ...
随机推荐
- Spring注解(赋值相关)
上面是与生命周期有关的内容,下面是属性赋值相关的: @Configuration public class ProperTyValueConfig { @Bean public Person pers ...
- LeetCode——single-number系列
LeetCode--single-number系列 Question 1 Given an array of integers, every element appears twice except ...
- eclipse文档字体大小设置
步骤如下
- python技术
要把zabbix弄成自动监控,下发任务,部署,事件恢复得功能
- scala学习手记15 - 独立对象和伴生对象
上一节中的单例对象MarkerFactory 就是一个独立对象的例子.尽管它管理着Marker类,但是它并没有关联到任何类上. scala也可以创建关联到类上的对象.这样的对象同类共享同一个名字,这样 ...
- Pycharm for mac 快捷键
cmd b 跳转到声明处(cmd加鼠标) opt + 空格 显示符号代码 (esc退出窗口 回车进入代码) cmd []光标之前/后的位置 opt + F7 find usage cmd backsp ...
- NLP(三)_统计语言模型
概念 统计语言模型:是描述自然语言内在的规律的数学模型.广泛应用于各种自然语言处理问题,如语音识别.机器翻译.分词.词性标注,等等.简单地说,语言模型就是用来计算一个句子的概率的模型 即P(W1,W2 ...
- 删除 mac 垃圾桶内清除不掉的文件
命令行 内 $ sudo rm -rf ~/.Trash/
- angular js jquery中post请求的一点小区别
这也是最近遇到的坑,还是之前那个项目,现在要实现登录功能. 背景:注册功能之前已经跑通了.前端用的是jquery后台是springMVC.鉴于注册和登录有些接口功能是类似的(比如注册确保邮箱是没有注册 ...
- oracle-12514 or 12520 监听程序无法为请求的服务器类型找到可用的处理程序
(转自:http://blog.csdn.net/wshl1234567/article/details/8003154) 在项目过程中,测试程序的时候数据库经常报错,经过几天的判断和分析,发现一个规 ...