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 security实现限制登录次数功能
本节是在基于注解方式进行的,后面的例子都会基于注解形式,不再实现XML配置形式,毕竟注解才是趋势嘛! 关键在于实现自定义的UserDetailsService和AuthenticationProvid ...
- Hibernate多对多关系映射
两张表的多对多关系,在数据库中通常是通过第三张中间表来实现的,第三张中间表放的是两张表各自的主键值,通过主键与主键的对应来体现表直接的关系.比如在权限系统中,一个用户可以拥有多种权限,而一种权限也可以 ...
- idea开启springboot的devtools自动热部署功能
1.先在pom文件中添加下面代码段 <!-- 热部署 --> <dependency> <groupId>org.springframework.boot</ ...
- 企业微信小程序--从零开始(带你见证从头开始的企业小程序之开发运营)
1.注册微信小程序账户(自己摸索吧很简单的) 2.微信小程序认证 3.遇到的问题 1)
- struts2——第一个案例
步骤如下 编程工具等百度云分享 1.创建一个web项目 2.引入struts2的基本jar包 struts2的基本jar包百度云 链接:https://pan.baidu.com/s/1LBnPJhF ...
- MyEclipse安装aptana插件, 8.5之前版本 和 之后版本, MyEclipse10安装aptana
MyEclipse8.5安装aptana插件说明: 1.在myeclipse的安装目录下,有个common文件夹,建一个myplugIns,此目录下建aptana_update_024747目录 2. ...
- LeetCode第[11]题(Java):Container With Most Water (数组容器盛水)——Medium
题目难度:Medium Given n non-negative integers a1, a2, ..., an, where each represents a point at coordina ...
- Mongodb笔记(三)user && aggregate && mapReduce
版本:mongodb3.4. User: mongodb使用验证登录:默认不开启,mongod中使用--auth开启: mongod -port=3000 --auth : 基本方法: db.cr ...
- poj3678 2- sat
这题就是找合取范式比较麻烦 AND 1 0必须取自己来造成矛盾,1必须取1 AND 0 1必须取0 OR 1 0必须取1 OR 0 1必须取自己来造 ...
- bash遍历目录压缩文件
#!/bin/bash function dir(){ ` do "/"$file ] then "/"$file else "/"$fil ...