SQL Server并发控制.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL Server并发控制

SQL Server并发控制 ;Logo;Logo;1 SQL Server锁的粒度及模式 ;2、资源锁定模式—基本锁 ;3)更新锁:在修改操作的初始化阶段用于锁定可能被修改的资源。一个数据修改事务在开始时直接申请更新锁,每次只有一个事务可以获得资源的更新锁。 使用更新锁可以避免上述死锁,因为一次只有一个事务可以获得更新锁,之后当需要继续修改数据时,将更新锁转换为排它锁,否则将更新锁转换为共享锁。 ;4)意向锁 意向锁表示如果获得一个对象的锁,说明该结点的下层对象正在被加锁。例如放置在表上的共享意向锁表示事务打算在表中的页或行上加共享锁。 意向锁可以提高性能,因为系统仅在表级上检查意向锁而无须检查下层。 ①意向共享锁:对一个对象加意向共享锁,表示将要对它的下层对象加共享锁。 ②意向排它锁:对一个对象加意向排它锁,表示将要对它的下层对象加排它锁。 ③意向排它共享锁:对一个对象加意向排它共享锁,表示对它加共享锁,再在它的下层对象加排它锁。 ; ;2 封锁协议 ;1级封锁协议;2级封锁协议;;3级封锁协议;;封锁协议小结;3 事务隔离 ;1)事务隔离级别 未提交读:这是4种隔离级别中限制最低的级别,它仅能保证SQL Server不读取物理损坏的数据。在这种隔离级别下,读数据时不发出共享锁,也不接受排它锁,事务可以对数据执行脏读;在事务结束前可以更改数据集内的数值,行也可以出现在数据集中或从数据集消失。但可以防止产生丢失修改。(一级封锁协议) 提交读:它要求在读取数据时控制共享锁以避免发生脏读,但数据可在事务结束前更改,这可能产生不能重复读或幻影读问题。 (二级封锁协议) 可重复读:锁定查询中使用的所有数据以防止其他用户更新,但是其他用户可以将新的幻影行插入到数据集中,新插入的幻影行将出现在当前事物的后续读取结果集中。可重复读能够避免产生脏读和非重复读问题,但仍可能导致幻影读问题。 (三级封锁协议) 可串行读:这是事务隔离的最高级别,它使事务之间完全隔离,所以将导致并发级别较低。在这种隔离级别下,SQL Server在数据集上放置一个范围锁,以防止其他用户在事务???成之前更新数据集或向数据集内插入数据行,从而避免出现脏读、非重复读或幻影读等并发问题。 (四级封锁协议) ; 2)事务隔离级别对不同类型的行为 隔离级别 丢失修改 脏数据 不可重读 幻影 未提交读 否 是 是 是 提交读 否 否 是 是 可重复读 否 否 否 是 可串行读 否 否 否 否 ;3)设置事务隔离级别 调用T-SQL中的SET TRANSACTION INOLATION LEVEL语句可以调整事务的隔离级别,以控制由该连接所发出的所有SELECT语句的默认事务锁定行为。该语句的语法格式为: SET TRANSACTION ISOLATION LEVEL{ READ UNCOMMITTED |READ COMMITTED |REPEATABLE READ |SERIALIZABLE } 例如:将事务隔离级别设置为REPEATABLE READ SET TRANSACTION ISOLATION LEVEL REPEATABLE READ 注意:一旦设定,系统就会按这种隔离级别自动进行并发处理。 ; 设置表级锁; 设置共享锁; 设置排它锁; 设置其它专用锁;4 死锁处理 ;Thank you

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档