您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

SQL Server 2008多版本的并发控制

添加时间:2014-5-5 16:23:40  添加: 思海网络 

  数据库的一致性,也是衡量DBMS性能的重要指标之一。目前大多数商业数据库(DB2, SQL Server)的并发控制采用的是两阶段锁(Two-Phase Locking,2PL)协议,2PL保证了并发事务执行的可串行化。但2PL在对任何数据进行读、写操作之前,需要对该数据加锁。在封锁相容矩阵中,S 锁(Share Locks,共享锁)和X锁(Exclusive Locks,排它锁)是不相容的,因此当事务1正对数据A进行读操作(加S锁)时,事务2想要对数据进行写操作(加X锁),那么事务2必须等待事务1释放 数据A上的S锁,才能继续执行。

  多版本并发控制(Multi-Version Concurrency Control,MVCC)较好地解决了这一问题。在多版本的系统中,每一次写数据均产生一个新的版本,读操作可以根据需要读取合适的版本,因此读写操作 互不阻塞。MVCC虽然提高了并发度,但也带来了维护多个版本的存储开销。

  Microsoft SQL Server 数据库引擎引入了现有事务隔离级别的一种新的实现方式 - 已提交读,用于提供使用行版本控制的语句级快照。SQL Server 数据库引擎还引入了一个新的事务隔离级别 - 快照,用于提供也使用行版本控制的事务级快照。

  将 READ_COMMITTED_SNAPSHOT 数据库选项设置为 ON 可启用使用行版本控制的已提交读隔离。将 ALLOW_SNAPSHOT_ISOLATION 数据库选项设置为 ON 可启用快照隔离。为数据库启用任一选项时,数据库引擎都将保持被修改的每一行的版本。每当某个事务修改行时,修改前的该行图像将被复制到版本存储区的一页 中。

  版本存储区是 tempdb 中的数据页集合。如果有多个事务修改行,则该行的多个版本将被链接到一个版本链中。使用行版本控制的读操作将检索每一行在事务或语句启动时已提交的最后一个版本。

   为 SQL Server 2008编写的或 SQL Server 中新增的应用程序,通过在 READ_COMMITTED_SNAPSHOT 数据库选项为 ON 时指定读提交的事务隔离级别,来实现使用行版本控制的读提交的隔离。所有读操作都将查看语句启动时已提交的行版本。这将提供数据的语句级快照。

  为 SQL Server 编写的应用程序将通过在 ALLOW_SNAPSHOT_ISOLATION 数据库选项为 ON 时指定快照事务隔离级别,来实现快照隔离。快照事务中的所有读操作都将查看事务启动时已提交的行版本。这将提供数据的事务级快照。

   对于使用基于行版本控制的隔离级别的事务,读操作不对数据请求共享锁。这意味着使用行版本控制的读取器不会妨碍其他读取器或编写器访问同一数据。同理, 编写器也不会妨碍读取器。但是,编写器会互相妨碍(即使是在基于行版本控制的隔离级别下运行)。两个写操作不能同时修改同一数据。

  “快 照隔离”功能扩展了 SQL Server 2008 中的锁定框架,它使应用程序能够在发生任何数据修改之前查看值。这可防止应用程序被锁定,同时仍将提供真正已提交的数据。SQL Server 2008 的 Read Committed Snapshot 需要数据库管理员来激活,允许数据被只读事务读取。所以 SI 对只读事务的并发控制效果是很好的,但是对更新事务是否也这样不得而知。

  对长时间运行的更新事务来说更为不利于与短期的高竞争性事务。 如果跨数据库的事务试图使用 快照隔离(SI)标准 ,而不是所有数据库都设定的话,则该事务会失败。这无疑给可扩展性带来一定的障碍。看来微软要实现自己的比 SQL 92 规范还要强的 SI 还有很多路要走。

关键字:SQL Server、数据库\事务

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站