ORACLE事务隔离性级别
2014-03-28 09:51
190 查看
事务隔离性级别(Transaction Isolation Level)是一个事物对数据库的修改,与并行的另外一个事物的隔离程度.
首先我们先了解试图访问表中相同行是可能会出现的问题.
1、幻像读取(phantom read)
事务1读取指定的where子句返回的结果集,事务2插入一条记录.而事务2插入的这条记录恰好满足事务1指定的where条件,且同时事务1再次执行查询时,就查询出了刚刚插入的这条记录,这个新行就被称为“幻像”.
2、不可重复读取(nonrepeatabl read)
事务T1刚读取了一条记录,紧接着事务T2修改了事务T1读取的那条记录,事务T1紧接着又读取了一次,这次发现与刚才读取的内容不同了, 这种现象称为“不可重复读取”.
3、脏读(dirty read)
事务T1更新了一行记录,但是并没有commit,事务T2读取了事务T1更新后的行,事务T1执行了回滚操作,撤销了刚才的修改,现在T2显示的数据已经不存在了,这是所读取的数据就被称为“脏数据".
为了处理这些问题,数据库规定了事务隔离性级别。
1、read uncommited:幻像读、不可重复读取、脏读都允许.
2、read commited:允许幻像读、重复读取,不允许脏读.
3、repeatable read:允许幻像读,不允许不可重复读取、脏读.
4、serializable:幻像读、不可重复读取、脏读都不允许.
注意:ORACLE数据库不支持read uncommited、repeatable read这两种事务隔离性级别.
语法格式如下:
set transaction isolation level {read uncommited | read commited | repeatable read|serializable | serializable}
示例:
幻像读、不可重复读取、脏读都不允许:
SQL>SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
首先我们先了解试图访问表中相同行是可能会出现的问题.
1、幻像读取(phantom read)
事务1读取指定的where子句返回的结果集,事务2插入一条记录.而事务2插入的这条记录恰好满足事务1指定的where条件,且同时事务1再次执行查询时,就查询出了刚刚插入的这条记录,这个新行就被称为“幻像”.
2、不可重复读取(nonrepeatabl read)
事务T1刚读取了一条记录,紧接着事务T2修改了事务T1读取的那条记录,事务T1紧接着又读取了一次,这次发现与刚才读取的内容不同了, 这种现象称为“不可重复读取”.
3、脏读(dirty read)
事务T1更新了一行记录,但是并没有commit,事务T2读取了事务T1更新后的行,事务T1执行了回滚操作,撤销了刚才的修改,现在T2显示的数据已经不存在了,这是所读取的数据就被称为“脏数据".
为了处理这些问题,数据库规定了事务隔离性级别。
1、read uncommited:幻像读、不可重复读取、脏读都允许.
2、read commited:允许幻像读、重复读取,不允许脏读.
3、repeatable read:允许幻像读,不允许不可重复读取、脏读.
4、serializable:幻像读、不可重复读取、脏读都不允许.
注意:ORACLE数据库不支持read uncommited、repeatable read这两种事务隔离性级别.
语法格式如下:
set transaction isolation level {read uncommited | read commited | repeatable read|serializable | serializable}
示例:
幻像读、不可重复读取、脏读都不允许:
SQL>SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
相关文章推荐
- 利用oracle flashback技术恢复数据之 ――事务级别闪回
- oracle事务的隔离级别和锁
- Oracle PL/SQL之SET TRANSACTION READ ONLY(事务隔离性)
- 利用oracle flashback技术恢复数据之 ――事务级别闪回
- Oracle PL/SQL之SET TRANSACTION READ ONLY(事务隔离性)
- Oracle PL/SQL之SET TRANSACTION READ ONLY(事务隔离性)
- 数据库之事务隔离性级别
- 深入理解oracle的事务隔离性
- Oracle 数据库事务隔离级别概述
- 初识jdbc对oracle数据库事务处理(隔离级别)
- 深入理解oracle的事务隔离性
- 4.事务提交过程,交易的基本概念,Oracle交易周期,保存点savepoint,数据库的隔离级别
- 数据库事务与隔离级别示例(oracle与sql server对比)
- 4.事务提交过程,事务基本概念,Oracle中的事务生命周期,保存点savepoint,数据库的隔离级别
- Oracle事务处理—隔离级别
- hibernate之控制并发访问(ANSI事务隔离性级别)
- 查看oracle的事务级别
- oracle在SERIALIZABLE级别上事务的特殊性与ORA-08177
- Oracle PL/SQL之SET TRANSACTION READ ONLY(事务隔离性)
- (转)mysql、sqlserver、oracle的默认事务的隔离级别