- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第七章并发控制
并发控制干扰问题解决干扰——封锁封锁不当——死锁封锁与隔离级别
干扰问题丢失更新问题未提交依赖问题不一致分析问题幻象读问题
丢失更新问题例:旅客A来到A售票处,要买一张15日北京到上海的13次直达快速列车的软卧车票,售票员A(下称用户A)在终端A查看剩余票信息;几乎在同时,旅客B来到B售票处,也要买一张15日北京到上海的13次直达快速列车的软卧车票,售票员B(下称用户B)从终端B查到了同样的剩余票信息;旅客A买了一张15日13次7车厢5号下铺的软卧票,用户A更新剩余票信息并将它存入数据库;这时用户B不知道用户A已经将15日13次7车厢5号下铺的软卧票卖出,使旅客B也买了一张15日13次7车厢5号下铺的软卧票,用户B更新剩余票信息并将它存入数据库(重复了用户A已经做过的更新)。总的效果:15日13次7车厢5号下铺的软卧票卖了两次。其原因是:允许了用户B在过时的信息基础上去更新数据库,而没有迫使他去看必威体育精装版的信息。
丢失更新问题
未提交依赖问题未提交依赖问题也称为读“脏”(DirtyRead)数据问题,查询一个已经被其他事务更新、但尚未提交的元组,将会引起未提交依赖问题。
不一致分析问题不一致分析问题也称为不可重复读问题,很多应用可能需要校验功能,这时往往需要连续两次或多次读数据进行校验和分析,结果由于其他事务的干扰,使得前后结果不一致,从而产生校验错误(即不一致的分析)。
幻象读问题幻象读问题与不一致分析问题有关,当事务A读数据时,事务B在对同一个关系进行插入或删除操作,这时事务A再读同一条件的元组时,会发现神秘地多出了一些元组或丢失了一些元组,把这种现象称作幻象读。
封锁
当需要查询或更新数据时,先对数据进行封锁,以避免来自其他事务的干扰。针对不同的干扰问题可以有不同的封锁机制。以丢失更新问题为例,实施封锁的基本思想是:当一个用户对一个表或记录进行更新时,封锁该表或记录,使其他用户不能在同一时刻更新相同的表或记录,迫使其他用户在更新后的基础上(而不是在更新前的基础上)再实施另外的更新操作。
实施封锁以后的时间序列
封锁机制共享封锁独占封锁更新封锁有些封锁在执行完相应操作后就自动释放封锁,有些封锁则保持到事务结束(提交或撤消)时才释放(无论如何,所有的封锁都会在事务结束时自动释放)。
共享封锁共享封锁是为读操作设置的一种封锁,所以也称作读封锁,或简称S锁,目的是想读到一组不变的数据,也就是在读数据的过程中,不允许其他用户对该数据进行任何修改操作。这种封锁可以保证最大的并发性,任何数量的用户都可以同时对同样的数据施加这种共享锁。已经实施共享锁的表拒绝来自其他事务的独占封锁和更新封锁。
独占封锁独占封锁也叫排他封锁,它是为修改操作设置的一种封锁,也称为写封锁,或简称为X锁,这是最严格的一类封锁。当需要对表实施插入、删除或修改操作时,应该使用独占封锁。已经实施独占封锁的表,拒绝来自其他用户的任何封锁,但不拒绝一般的查询操作。
更新封锁当需要对一个记录或一组记录进行更新时(只是修改,不包括插入和删除)使用更新封锁,该封锁的目的是防止其他用户在同一时刻修改同一记录。已经实施更新封锁的记录,拒绝来自其他用户的任何封锁,但不拒绝一般的查询操作。
SQLServer中与封锁有关的命令SQLServer的封锁操作是在相关语句的“WITH(table_hint)”子句中完成的,该短语可以在SELECT、INSERT、UPDATE和DELETE等语句中指定表级锁定的方式和范围。
SQLServer中与封锁有关的命令常用的封锁关键词有:TABLOCK:对表施行共享封锁,在读完数据后立刻释放封锁,此类封锁可以避免读“脏”数据,但不具有可重复读的特性。HOLDLOCK:与TABLOCK一起使用,可将共享锁保留到事务完成,而不是在读完数据后立即释放锁,这样可以保证数据的可重复独特性。NOLOCK:不进行封锁,此关键词仅应用于SELECT语句,这样可能会读取未提交事务的数据,即有可能发生“脏”读。TABLOCKX:对表实施独占封锁。UPDLOCK:对表中的指定元组实施更新封锁;这时其他事务可以对同一表中的其他元组也实施更新封锁,但是不允许对表实施共享封锁和独占封锁。
SQLServer中与封锁有关的命令…DECLARE@ddatetime,@tchar(6),@schar(2),@nchar(10)…BEGINTRANSACTIONSELECT@n=座位号FROMRWITH(UPDLOCK)WHERE日期=@dAND车次=@tAND座别=@sAND状态ISNULL…IF…U
您可能关注的文档
- 顾客购买心理分析与沟通技巧.ppt
- 王丽丽综合医院传染病医院感染防控及案例分享.ppt
- 上海浦东浦东嘉里城购物中心案例深度研究分析报告.ppt
- 深圳移动销售案例介绍.ppt
- 古代伊斯兰的设计艺术.ppt
- 法兰原著-现代简约-装修设计案例效果图.pptx
- 临床营养的实施与监测.ppt
- 大学生心理健康案例教 周蓓 周红玲 课题三认识自我新.ppt
- 山东省大联考2024-2025学年高一年级上册12月模拟选课走班调考试政治试题(含解析).pdf
- 小说标题的含义和作用(试题专练)-2025年中考语文考点突破之小说阅读(解析版).pdf
- 书面表达之建议信(讲义)-中考英语一轮复习(含答案).pdf
- 中考历史复习小众题型类:填空题、改错题、判断题(70题).pdf
- 2024年吉林省县乡教师选调考试《教育学》真题汇编带解析必背【基础题】.pdf
- 2025年中考语文备考之《朝花夕拾》名著导读及考题.pdf
- 小说标题的含义和作用(模拟突破)-2025年中考语文考点突破之小说阅读(解析版).pdf
- 阅读理解之应用文(练习)-中考英语一轮复习(含答案).pdf
- 小说情节作用(模拟突破)-2025年中考语文考点突破之小说阅读(原卷版).pdf
- 小说段落作用(模拟突破)-2025年中考语文考点突破之小说阅读(解析版).pdf
- 小说段落作用(试题专练)-2025年中考语文考点突破之小说阅读(解析版).pdf
- 2025年上海市16区初三语文一模试题汇编之现代文阅读二(记叙文)学生版.pdf
文档评论(0)