Database 版 (精华区)

发信人: mm (绿色的梦), 信区: Database
标  题: 数据库技术讲座(七)-----并发处理(2)
发信站: 紫丁香 (Tue Oct 21 21:49:36 1997)


  2 ORACLE只读事务
    ORACLE支持只读事务。只读事务有以下特点:
      * 在事务中只允许查询
      * 其它事务可修改和查询数据
      * 在事务中,其它用户的任何修改都看不见
    只读事务的写法为:
      SET TRANSACTION READ ONLY
        SQL 语句
      COMMIT,ROLLBACK,DDL结束只读事务
  3 事务一致性的级别
    事务是定义和维护一致性的单位,封锁就是要保证这种一致性。如果
对封锁的要求高会增加开销,降低并发性和效率;有的事务并不严格要求
结果的质量(如用于统计的事务),如果加上严格的封锁则是不必要和不
经济的。因此有必要进行进一步的分析,考察不同级别的一致性对数据库
数据的质量及并行能力的影响。
    一致性级别定义为如下的几个条件:
  (1) 事务不修改其它任何事务的脏数据。脏数据是被其它事务修改过,
但尚未提交的数据。
  (2) 在事务结束前不对被修改的资源解锁。
  (3) 事务不读其它任何事务的脏数据。
  (4) 在读前对数据加共享锁(RS)和行排它锁,直至事务结束。
      * 满足条件1的事务叫第0级事务。
      * 满足条件1和2的事务叫第1级一致性事务。
      * 满足条件1、2和3的事务为2级一致性事务。ORACLE的读一致性保
证了事务不读其它事务的脏数据。
      * 满足条件1、2、3和4的事务叫第3级一致性事务。
    由ORACLE的三个性质:自动加隐式锁、在事务结束时释放锁和读一致
性,使ORACLE成为自动满足以上的0、1和2级一致性事务。因此,ORACLE
自动防止了脏读(写-读依赖)。但是,ORACLE不能自动防止丢失修改(写
-写依赖),读的不可重复性(读-写依赖),彻底解决并发性中的问题还
需满足第4个条件(3级一致性事务),这需要程序员根据实际情况编程。
方法如下:(见下篇文章)

--
                _/     _/        _/     _/
               _/_/ _/_/        _/_/ _/_/
              _/  _/ _/        _/  _/ _/
             _/     _/        _/     _/
            _/     _/        _/     _/         

※ 来源:.紫丁香 pclinux.hit.edu.cn.[FROM: space.hit.edu.c]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.506毫秒