基于SQL数据库并发控制技术.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于SQL数据库并发控制技术

基于SQL数据库并发控制技术   摘要:通过介绍SQL Server并发控制机制,总结出一些提高并发性的措施。      关键词:一致性并发控制机制SQL Server      1 SQL Server 2000数据库技术      1.1 SQL Server 数据库概述   SQL Server是微软公司所推出的一套运行在Windows平台上的数据库管理系统,用于提供作为应用程序的数据来源,存放各种数据,并可以让用户很容易地实现所要进行的数据存取操作。      2 基于SQL的并发控制机制      2.1 数据库中传统封锁机制的问题   目前,人们在不断地试图发现更有效的方法和技术,以适应不同的应用环境。无论什么方法,锁的方法占有绝对的主导地位,其原因不仅是它简单易实现,而且在许多环境中,相对于其它方法来说,其效率是最高的,但锁方法也带来了一些问题。   2.2 基于SQL的事务模型   在传统数据库并发控制方法的研究中,通常把事务模型分为读操作(read(x))和写操作(write(x))组成。   定义l.设事务Ti的操作0i要对数据库中满足条件Ci的元组进行操作,则称Cj为0i的操作条件.满足条件Ci的元组集合记为SAT(Ci)。   根据SQL语法,把SQL程序转换成事务操作序列的方法可描述如下。   (1)选择语句的转换   在单个关系中选择   Select A   FromR转换成Q(R,c)   Where C   在多个关系中选择(连接)   SelectA   From Rl,R2,…,Rn转换成Q(R1,Cl)Q(R2,C2)…Q(Rn,Cn)   WhereCl^C2^…^Cn   连接条件嵌套查询   Select A   FfromR1   WhereClANDSELECTB 转换成Q(R1,Cl)Q(R2,C2)   FROMR2   WHERE C2   当出现多层嵌套时,处理方法类似.   (2)修改语句的转换   Update R   Set(A1=W1,A2=W2,…)转换成U(R,C)   where C   (3)插入语句的转换   Insert   IntoR(A1,A2,…,An)转换成l(R,C)   Value(al,a2,…,an)   ( 4)删除语句的转换   Delete   from R转换成D(R,C)   where C   在执行完0n(On,Rn)后,再执行COMMIT摄作表示提交。其中有一步无法执行。   则整个事务无法执行。   2.3 冲突类型与相关判定算法   事务冲突的概念:   定义2.设0i(Ri,Ci)和Qj(Ri,Cj)分别表示Ti和Tj的操作(i≠j)。则Ci和Qj相关当且仅当Ri和Rj为同一关系且存在元组t∈DOM(Ri),使t∈SAT(Ci)且t∈SAT(Cj)。   定义3.换作0i(Ri,Ci)和Oj(Rj,Cj)是不冲突的,当且仅当Ci和Cj不相关,或者0i和0j同时为查询操作,或者同时为删除操作,或者同时为插入操作。   2.4 并发控制机制   根据我们提出的SQL事务模型和相关算法,结合2PL并发控制方法,设计并发控制机制Condition-Locking。   对每个关系R,定义一个条件锁集合:   Lock-Set(R)={Lock(R,Ci)1操作。i(R,Ci)被允许对关系R操作)。   Lock -Set(R)记录了所有事务对关系R加的条件锁。   对每个事务T,定义一个关系巢合。   R-Used(T)={R/T对关系R加了条件锁}。   R-Used(T)记录了T使用的所有关系。   Condition-locking方法稀2PL方法是类似的,在第一阶段事务只得锁,在第二阶段事务只释放锁。      3 提高系统并发性的一些措施      通过了解这些机制之后,根据减少锁、减少保持锁的时间、减少冲突的原则,并且根据这些原则总结出一些提高系统并发性的措施。   1) 优化数据库语句的性能,尤其是选择语句的性能。首先,减少SQL语句的运行时间可以缩短改语句在资源上保持锁的时间,从而允许更多的互斥操作。其次。多数选择语句的性能问题都市没有合适的索引,或者即使有索引但为利用索引锁导致的。   2) 通过建立索引,从而也就避免了在表中的所有行或整个表上保持锁。使用尽量短的事务。尤其是要避免在事务执行期间以用户交互。这样可以减少锁的保持时间。   3) 在读写操作过多导致大量死锁的系统中使用快照隔离级别或已提交读快照隔离级别,但这时要特别注意优化数据库。   4) 如果不能使用

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档