并发性与隔离级别

原创 2012年03月23日 06:25:58

 

一、并发性带来的问题
  1、脏读(dirty read)
  2、幻读(phantom read)
  3、更新丢失(lost update)
  4、不可重复读(nonrepeatable read)
二、隔离级别
  1、串行(serializable):不会出现任何并发性问题
  2、可重复读(repeatable read):可能出现幻读
  3、已提交读(read committed):可能出现幻读和不可重复读,解决了脏读和更新丢失。
  4、未提交读(read uncommitted):可能出现所有并发性问题
  隔离级别越高,并发性越差,一致性越好。
三、oracle提供的隔离级别
  1、串行(serializable)
  2、已提交读(read committed)(oracle默认隔离级别)
  3、只读模式(read only)

四、语句级读一致性
  语句级读一致性(statement-level read consistency):单一查询的结果集来自一个时间点——即查询开始执行的时间。一个查询的结果集永远不会包含脏数据及此查询执行

时其他事务提交的数据。在一个查询执行期间,只有在查询执行前提交的数据对此查询才是可见的。查询无法看到其开始执行后提交的数据。
  SELECT ,使用子查询的 INSERT、UPDATE、DELETE 语句,都能够保证数据一致性。
  INSERT、UPDATE、DELETE 语句中包含的查询能够获得一致性的结果集。这些查询无法看到其所在 DML 语句对数据的修改。换句话说,这些查询只能看到其所在 DML 语句开始之

前的数据。
  如果 SELECT 列表中存在 PL/SQL 函数,那么函数中包含的 SQL 语句将遵从其自身的语句级读一致性,而非其所在 SQL 的读一致性。
  oracle默认保证语句级读一致性。
五、事务级读一致性
  事务级读一致性(transaction-level read consistency:事务内所有数据访问均反映的是事务开始时的数据状态。即事务内的所有查询对某个时间点来说具备一致性,但是运

行在串行化模式下的事务能够看到事务自身对数据所作的修改。事务级的读一致性能够保证可重复读取并可阻止出现不存在读取。在oracle中实现事务级读一致性需要修改隔离级

别,设置为serializable。
六、更改隔离级别
  1、会话级修改:alter session set isolation_level={serializable |read committed}  --会话级修改只有这两个值
  2、事务级修改:set transaction isolation level {serializable |read committed}
                 set transaction read only
                 --事务级修改有三个取值,但修改语句只能是事务的第一个语句。
                 --sys用户或者以sysdba连接的用户不能在事务级设置串行隔离级别

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

八张图教你彻底理解数据库并发控制之隔离级别(中)

八张图教你彻底理解数据库并发控制之隔离级别(中) 一、更新丢失 第一个问题来源于两个事务对同一个数据进行修改,引起数据修改最终结果的不确定性。更形象一点,甲乙两童鞋同时在网上订飞机票,甲童鞋瞄中了...

Hibernate事务与并发问题处理(乐观锁与悲观锁)及事务隔离级别

Hibernate事务与并发问题处理(乐观锁与悲观锁) 一、数据库事务的定义   数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。事务处...

关于Mysql事务REPEATABLE_READ隔离级别下多版本并发控制(MVCC)重复读产生的坑的你踩过么?

前几天在系统中开发一个活动, 使用了行级锁,但是却在并发测试下出现了重大的Bug,话不多说, 直接开始. 事务的隔离级别是Mysql默认的REPEATABLE_READ. Time1: 事务A...

数据库并发机制和事务的隔离级别详解

数据库并发机制和事务的隔离级别详解 本文将从以下4个方面来展开: (1)事务的4大特性: (2)数据库并发操作产生的问题: (3)数据库的锁机制: (4)事务的4大隔离级别:

事物的并发和隔离级别

并发问题可归纳为以下几类:   A.丢失更新:撤销一个事务时,把其他事务已提交的更新数据覆盖(A和B事务并发执行,A事务执行更新后,提交;B事务在A事务更新后,B事务结束前也做了对该行数据的更新操...

事务并发、事务隔离级别

并发问题可归纳为以下几类:   A.丢失更新:撤销一个事务时,把其他事务已提交的更新数据覆盖(A和B事务并发执行,A事务执行更新后,提交;B事务在A事务更新后,B事务结束前也做了对该行数据的更新操...

事务并发、事务隔离级别

原文: 并发问题可归纳为以下几类:   A.丢失更新:撤销一个事务时,把其他事务已提交的更新数据覆盖(A和B事务并发执行,A事务执行更新后,提交;B事务在A事务更新后,B事务结束前也做了对该...

八张图教你彻底理解数据库并发控制之隔离级别(上)

八张图教你彻底理解数据库并发控制之隔离级别(上) 数据库的隔离级别,是数据库理论中和实践中最为复杂深奥的东西,没有之一。老子经常云:“道可道,非常道”,理解起来就是:“道”这种东...

事务并发控制、隔离级别及JDBC事务

1. DBMS事务并发控制     1.1 事务并发操作的问题         DMBS允许东西运行多个事务,这些事务可能同时操作同一数据对象。这可能造成以下问题  ...

Informix的事务、并发控制、锁机制、隔离级别

Informix的事务、并发控制、锁机制、隔离级别
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)