Oracle中事物处理--事物隔离级别
n 事物隔离级别
概念:隔离级别定义了事物与事物之间的隔离程度。
ANSI/ISO SQL92标准定义了一些数据库操作的隔离级别(这是国际标准化组织定义的一个标准而已,不同的数据库在实现时有所不同):
| 
 隔离级别  | 
 脏读  | 
 不可重复读  | 
 幻读  | 
| 
 读未提交(Read uncommitted)  | 
 √  | 
 √  | 
 √  | 
| 
 读已提交(Read committed)  | 
 ×  | 
 √  | 
 √  | 
| 
 可重复读(Repeatable read)  | 
 ×  | 
 ×  | 
 √  | 
| 
 可串行化(Serializable)  | 
 ×  | 
 ×  | 
 ×  | 
√ 可能出现 ×不会出现
脏读(dirty read):当一个事物读取另个一事物尚未提交的修改时,产生脏读。在oracle中,没有脏读。
不可重复读(nonrepeatable read):同一查询在同一事物中多次进行,由于其他提交事物所做的修改或删除,造成本事物每次返回不同的结果集,此时发生不可重复读。
幻读(phantom read):同一查询在同一事物中多次进行,由于其他提交事物所做的插入操作,造成本次事物每次返回不同的结果集,此时发生幻读。
n Oracle的事物隔离级别
Oracle提供了SQL92标准中的read committed和serializable(串行化),同时提供了非SQL92标准的read-only
Oracle的read committed说明:
①这是ORACLE缺省的事物隔离级别。
②保证不会脏读;但可能出现非重复读和幻像。
Oracle的serializable说明:
①serializable就是是事物看起来象是一个接着一个地顺序地执行(从效果上可以这样理解)
②仅仅能看见在本事物开始前由其他事物提交的更改和在本事物中所做更改
③保证不会出现脏读、不可重复读和幻读
Serializable和read-only的区别:
² Serializable隔离级别提供了read-only事物所提供的读一致性(事物集的读一致性),同时又允许DML(update/insert/delete)操作
² read only 只读事物,不允许DML操作。
n Oracle的事物隔离级别设置
u 设置一个事物的隔离级别
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;(默认级别)
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;(需要手动设置)
SET TRANSACTION READ LONLY;
u 设置整个会话的隔离级别
Alter session set isllation_level serializable;
Alter session set isolation_level read committed;
n Oracle的事物隔离级别在java程序中如何使用
connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
特别说明:
①java程序中Connection.XXXXX有五个,但不是所有的数据库对有对应的五个事物隔离级别实现。
②在实际工作中,我们极少去修改各个数据库默认的隔离级别。
说明:一般情况下,我们java程序员无需去设置
Oracle中事物处理--事物隔离级别的更多相关文章
- mysql 事物ACID和隔离级别
		
⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则 ...
 - (转)mysql、sqlserver、oracle的默认事务的隔离级别
		
1.mysql的默认事务的隔离级别:可重复读取(repeatable read); 2.sqlserver的默认事务的隔离级别:提交读取(read committed); 3.oracle的默认事务的 ...
 - MySQL学习【第十二篇事务中的锁与隔离级别】
		
一.事务中的锁 1.啥是锁? 顾名思义,锁就是锁定的意思 2.锁的作用是什么? 在事务ACID的过程中,‘锁’和‘隔离级别’一起来实现‘I’隔离性的作用 3.锁的种类 共享锁:保证在多事务工作期间,数 ...
 - MySQL事物(一)事务隔离级别和事物并发冲突
		
数据库的操作通常为写和读,就是所说的CRUD:增加(Create).读取(Read).更新(Update)和删除(Delete).事务就是一件完整要做的事情.事务是恢复和并发控制的基本单位.事务必须始 ...
 - 谈一谈对MySQL InnoDB的认识及数据库事物处理的隔离级别
		
介绍: InnoDB引擎是MySQL数据库的一个重要的存储引擎,和其他存储引擎相比,InnoDB引擎的优点是支持兼容ACID的事务(类似于PostgreSQL),以及参数完整性(有外键)等.现在Inn ...
 - mysql,oracle,sql server中的默认事务隔离级别查看,更改
		
未提交读(隔离事务的最低级别,只能保证不读取物理上损坏的数据) 已提交读(数据库引擎的默认级别) 可重复读 可序列化(隔离事务的最高级别,事务之间完全隔离) 可串行化比较严谨,级别高; MySQL m ...
 - SQL Server中锁与事务隔离级别
		
SQL Server中的锁分为两类: 共享锁 排它锁 锁的兼容性:事务间锁的相互影响称为锁的兼容性. 锁模式 是否可以持有排它锁 是否可以持有共享锁 已持有排它锁 否 否 已持有共享锁 否 是 SQL ...
 - SQL Server中的事务与其隔离级别之脏读, 未提交读,不可重复读和幻读
		
原本打算写有关 SSIS Package 中的事务控制过程的,但是发现很多基本的概念还是需要有 SQL Server 事务和事务的隔离级别做基础铺垫.所以花了点时间,把 SQL Server 数据库中 ...
 - 关于ORACLE的串行化隔离级别--来自ORACLE概念手册
		
为了描述同时执行的多个事务如何实现数据一致性,数据库研究人员定义了被 称为串行化处理(serializability)的事务隔离模型(transaction isolation model).当所有 ...
 - SQL 标准中的四种隔离级别
		
READ UNCOMMITED(未提交读) 在RERAD UNCOMMITED级别,事务中的修改,即使没有提交,对其他事务也都是可见的.事务可以读取未提交的数据,这也成为脏读(Dirty Read). ...
 
随机推荐
- 善用 NuGet 程序包管理器控制台
			
每种集成开发环境都会提供扩展包的下载与安装,VS (微软可视化集成开发环境) 下的叫程序包管理控制台,我们把他叫做<牛干 程序包管理控制台>. 在 工具=>NuGet 程序包管理器= ...
 - webServices学习三(概念详解)
			
WebService通过HTTP协议完成远程调用: (深入分析) WebService只采用HTTP POST方式传输数据,不使用GET方式; -- 握手,WSDL-get, 普通http post的 ...
 - Hadoop 集群硬件配置
 - UVa-401 Palindromes回文词
			
虽然是水题,但是容易错.参照了紫书的代码可以写的很简洁.主要还是注意常量数组的使用,能让代码变得简单许多 #include <iostream> #include <cstdio&g ...
 - vim编辑器操作①
			
Linux文本编辑器: 行编辑器:sed 全屏编辑器:nano,vi/vim 本文主要介绍说明vim编辑器的相关使用: 其有三种模式,即: 编辑模式(默认模式).插入模式(输入模式).末行模式(内置的 ...
 - Java方法传参的问题
			
1.基本数据类型(byte,short,int,long,float,double,boolean,char)的值传递,不改变其值 2.引用数据类型的值传递,改变其值 3.String类型虽然是引用数 ...
 - TSQL:让监控分析更简单更高效
			
1. 前言 阿里时序时空数据库TSDB最新推出TSQL,支持标准SQL的语法和函数.用户使用熟悉的SQL,不仅仅查询更简单易用,用户还可以利用SQL强大的功能,实现更加复杂的计算分析. 2. 为什么需 ...
 - Django多业务模块的写法
			
from django.shortcuts import render # Create your views here. from django.shortcuts import HttpRespo ...
 - 发布Qt Widgets桌面应用程序的方法
			
Qt是一款优秀的跨平台开发框架,它可以在桌面.移动平台以及嵌入式平台上运行.目前Qt 5介绍程序发布的文章帖子比较少.大家又非常想要知道如何发布Qt应用程序,于是我花了一点儿时间介绍一下如何发布Qt桌 ...
 - web前端学习(四)JavaScript学习笔记部分(2)-- JavaScript语法详解
			
2.1.Javascript语法-运算符(1) 复数运算符 %取余 ++ -- 赋值运算符 += -= *= /= %= 字符串操作 <!DOCTYPE html> <html la ...