zoukankan      html  css  js  c++  java
  • DataSet 与 开放式并发

    在多用户环境中,有两种用于更新数据库中数据的模型:开放式并发和保守式并发。设计 DataSet 对象的目的是为了促进将开放式并发用于长时间运行的活动,例如当您对数据进行远程处理以及当用户与数据进行交互时。

    保守式并发(DataReader)涉及到锁定数据源中的行,以防止用户因修改数据而影响其他用户。在保守式模型中,当用户执行会应用锁的操作时,其他用户将无法执行可能与锁发生冲突的操作,直到锁所有者释放锁为止。此模型主要用于以下环境:对数据存在激烈争用;用锁保护数据的成本小于在发生并发冲突时回滚事务的成本。

    因此,在保守式并发模型中,如果用户在读取某行时有将其更改的意图,他将建立一个锁。在该用户完成更新并释放锁之前,其他任何用户都无法更改锁定行。因此,如果锁定时间将会比较短(例如在以编程方式处理记录时)时,最好实现保守式并发。当用户与数据进行交互时,保守式并发并不是可伸缩的选项,它会使记录被锁定相对长的时间。

    对比之下,使用开放式并发的用户在读取行时不会锁定该行。当用户要更新某行时,应用程序必须确定自读取该行以来,其他用户是否更改了该行。开放式并发通常用于对数据争用较小的环境。由于不需要锁定任何记录,它将会提高性能,因为锁定记录需要附加的服务器资源。另外,为了维护记录锁,需要与数据库服务器保持持久连接。由于在开放式并发模型中并不会这样,所以与服务器的连接可以在较少的时间内为大量的客户端提供服务。

    在开放式并发模型中,如果当某用户接收到来自数据库的值后,另一用户在该用户试图修改该值之前即将其修改,则认为发生了冲突。

  • 相关阅读:
    DES加密和解密PHP,Java,ObjectC统一的方法
    TreeSaver 使用教程整理——Step 3: Creating Grids
    android面试题目汇总持续更新
    Android SQLiteHelper
    Android计算地图上两点距离
    asp.net 下载文件几种方式
    android 权限
    ORA01795的原因及解决办法
    C# winFrom 通过注册新协议实现网页链接打开本地程序
    Android 读SIM卡信息
  • 原文地址:https://www.cnblogs.com/silva/p/158205.html
Copyright © 2011-2022 走看看