1、ANSI/ISO SQL92标准定义了一些数据库操作的隔离级别:
l 未提交读(read uncommitted)
l 提交读(read committed)
l 重复读(repeatable read)
l 序列化(serializable)
也就是隔离级别,0,1,2,3。ANSI/ISO SQL92标准有很详细的说明
隔离级别0与事务无关,并且不加锁,也就是说例如select * from t1,系统扫描过和读取的每一行都不加锁。
隔离级别1与事务无关,只对正在取数的行加锁,取完数马上开锁,也就是说,begin tran 然后select * from t1即使没有commit,锁也会自动打开。
隔离级别2与事务有关,对扫描过的地方加锁。例如,select * from t1,系统从第1行开始扫描,扫描到第5行的时候,1到5行都处于锁定状态,直到commit,这些锁才解开。
隔离级别3与事务有关,对全表加锁。
2、各种隔离级别出现的现象
通过一些现象,可以反映出隔离级别的效果。这些现象有:
更新丢失(lost update):当系统允许两个事务同时更新同一数据是,发生更新丢失。
脏读(dirty read):当一个事务读取另一个事务尚未提交的修改时,产生脏读。
非重复读(nonrepeatable read):同一查询在同一事务中多次进行,由于其他提交事务所做的修改或删除,每次返回不同的结果集,此时发生非重复读。
幻读(phantom read):同一查询在同一事务中多次进行,由于其他提交事务所做的插入操作,每次返回不同的结果集,此时发生幻像读。
3、Oracle数据库的三种隔离级别
1). Read committed
该隔离级别不允许脏读,也不允许重复读(即再次读取时可能会与原来的值不一样),并且允许幻像读(即再次读取时新增的数据可以读取到).
这里的重复读和幻像读均是oracle在其内部的一种实现机制,正常我们执行select后,再执行select不能算做重复读或幻像读,只是在oracle内部由于某种原因,在我们执行select 操作后,oracle在内部帮我们从数据块中读取数据时,读取到一部分,发生了一些oracle认为有必要重新进行获取的机制时,需要重头开始读取数据,这时的读称为重复读!
2).serialable
该隔离级别要求同一会话session中的事务是序列化的,一般都不会用到这种隔离级别.
3).read Only
即事务是只读的, 不允许update 和delete和insert操作.
分享到:
相关推荐
介绍数据库事务的四种隔离级别,比较不同隔离级别的区别和影响
Oracle数据库的事务隔离级别是确保数据一致性的重要机制,它决定了在一个事务执行期间,与其他并行事务的交互方式。事务隔离级别主要解决并发操作时可能出现的三个问题:幻读(Phantom Read)、不可重复读(Non-...
总结来说,Oracle 数据库提供了多种事务隔离级别,以适应不同的并发需求和数据一致性保证。理解并正确选择隔离级别对于优化并发性能和维护数据完整性至关重要。开发和数据库管理员需要根据业务场景和性能需求来选择...
数据库事务和隔离级别
数据库事务隔离级别和锁机制是确保数据库并发操作正确性和一致性的关键组成部分。在数据库系统中,尤其是大型企业级应用,多个用户可能同时访问和修改相同的数据,因此并发控制显得尤为重要。 事务的四个基本特征...
### 数据库事务隔离级别详解 #### 一、引言 在多用户共享的数据库系统中,为了保证数据的一致性和准确性,必须对并发事务进行控制。数据库事务隔离级别是用来管理多个事务之间相互影响的程度,主要解决的问题包括脏...
Spring 框架提供了一套完善的事务管理机制,其中包含了多种事务传播属性和事务隔离级别。这些特性使得在处理数据库操作时,能够更好地控制事务的边界和行为,从而确保数据的一致性和完整性。 首先,我们来看一下...
##### 3.3 Oracle 数据库中的并发事务隔离级别 在多用户环境中,多个事务可能会同时访问相同的数据。为了保证数据的一致性,Oracle 支持不同的隔离级别。这些隔离级别可以控制事务之间数据的可见性,从而减少或消除...
在SQL SERVER和ORACLE中,事务隔离级别是不同的,它们决定了并发操作时数据的可见性和一致性。SQL SERVER提供了四种隔离级别:读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable ...
数据库事务的四种隔离级别的特点描述,他们的使用热度,以及各种锁在隔离级别下的释放时机。
为了减少这些问题的影响,数据库管理系统提供了不同等级的隔离级别来控制事务间的交互。 #### 二、隔离级别的定义及影响 根据ANSI/ISO SQL92标准,隔离级别包括以下几种: 1. **未提交读(Read Uncommitted)**:...
总而言之,Oracle数据库指南为用户提供了学习和掌握Oracle数据库技术的宝贵资源,文档中涉及的知识点不仅包括了数据库的基本操作和管理,还涵盖了高级功能如网格计算、数据处理的事务控制,以及对软件使用的法律约束...
- 实现事务管理:提交、回滚和设置事务隔离级别。 - 使用存储过程和函数:调用数据库中的自定义逻辑。 - 数据源管理:通过连接池提高应用性能和资源利用率。 在J2EE应用服务器中,通常会配置数据源,这样应用可以...
8. **优化技巧**:包括使用PreparedStatement避免SQL注入,合理设置批处理大小,使用连接池,以及使用合适的事务隔离级别等。 9. **Quartz Job与Oracle结合**:`quartz_job.xml`可能定义了Quartz作业,这些作业可能...
数据库事务隔离级别是数据库管理系统为确保并发环境下数据一致性而设定的一种机制。在多用户同时访问数据库的场景下,如果不加以控制,可能会出现各种数据安全问题,例如脏读、不可重复读和幻读。为此,数据库系统...
其核心特性包括ACID(原子性、一致性、隔离性和持久性)事务处理、多版本并发控制以及强大的备份和恢复机制。 二、Oracle数据库安装与配置 安装Oracle数据库涉及选择合适的软件版本、规划数据库实例、配置网络服务...
### 数据库事务隔离级别与锁 #### 一、事务的基本特征 事务是数据库管理系统的核心概念之一,用于确保数据的一致性和正确性。事务通常具备以下四个特性,即ACID特性: 1. **原子性(Atomicity)**:事务被视为一...