欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    数据库中并发控制.ppt

    • 资源ID:6364928       资源大小:3.72MB        全文页数:29页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据库中并发控制.ppt

    第十四章,并发控制,了解并发访问带来的问题理解锁、锁定和锁定协议的相关概念理解活锁与死锁的概念理解锁的粒度掌握Oracle中的锁的分类及特点掌握通过SQL*Plus检测与解决锁争用,1,目标,事务的并发,在一般的数据库应用中,不太可能出现在一个时刻有且只有一个事务在操作数据库的情况,对于大多数数据库应用来说,往往都会出现两个或两个以上事务试图修改数据库中的同一个数据的情况,这种情况就被称为事务的并发。,2,事务并发带来的问题,锁与锁定,锁与锁定是实现并发控制的非常重要的技术。锁是多个用户能够同时操纵同一个数据源而不会出现数据不一致现象的重要保障,是防止其他事务访问指定的资源控制、实现并发控制的一种主要手段。如果一个数据库对象被添加了锁,则此数据库对象就有了一定的访问限制,也就是说对此数据库对象进行了锁定操作。所谓锁定是数据库用来同步多个用户对同一个数据库对象访问的一种机制。通过锁定可以阻止其他事务造成的负面影响,当事务不再依赖锁定的数据资源时,可以将锁释放。,3,锁定的流程图,锁的基本类型,独占锁 独占锁是对锁定的资源只允许进行锁定操作的事务使用的,独占锁又称为写锁,表示如果某事务在数据库对象A上加了独占锁,则只允许该事务对A进行操作,其他任何事务都既不能对A进行操作或者加锁,直到该事务释放A上的独占锁为止。这就确保不会同时有多个事务对同一数据库对象进行操作。共享锁 共享锁是指对不更改或不更新数据的读取操作的事务使用的,共享锁又称为读锁,它是非独占的,允许多个并发事务读取其锁定的数据库对象。如果某个事务在数据库对象A上加了共享锁,则只允许该事务读取A但不能更改A。其他任何其他事务也可以同时对A进行读取操作,但不能更改A,这样就确保了多个事务可以对保护的数据库对象同时进行读操作,但不能同时进行写操作。,独占锁和共享锁锁定的示意图,6,锁定协议,一级锁定协议 事务在修改数据库对象A之前,必须先对其加独占锁,并直到事务结束时才释放该独占锁,如果事务仅仅是读取A,则不需要加任何锁。二级锁定协议 二级锁定协议是在一级锁定协议的基础上,加上事务在读取A之前必须加共享锁,读完后立即释放共享锁。三级锁定协议 三级锁定协议是在二级锁定协议的基础上,加上事务在读取A之前必须加共享锁,直到事务结束后才释放共享锁。,锁定协议主要分为如下3个级别:,不同级别的锁定协议及其作用,活锁与死锁,活锁多个事务并发执行的过程中,可能会存在某个有机会获得锁的事务却永远也没有得到锁,这种现象称为活锁。死锁在多个事务并发执行的过程中,还会出现另外一种现象,即多个并发事务处于相互等待的状态,其中的每一个事务都在等待它们中的另一个事务解除锁定,这样才可以继续执行下去,但任何一个事务都没有释放自己已获得的锁,也就无法获得其他事务已拥有的锁,所以只好相互等待下去。因此产生死锁的原因是两个或多个事务都锁定了一些数据库对象,然后又都需要锁定对方的数据库对象失败而需要等待所造成的。,活锁的例子,死锁的例子,死锁的预防,一次锁定法 该方法要求每个事务必须一次将所有要使用的数据库对象全部锁定,否则就不继续执行。在之前表14-5中的例子中,如果事务T1一次就将数据库对象A1、A2全部都锁定的话,T1就会执行下去。T2开始是等待的,但在T1执行完毕释放锁之后,T2就可以锁定A1、A2了,也就可以执行下去了。顺序锁定法 顺序锁定法要求预先对数据库对象规定一个锁定的顺序,所有事务都按这个顺序来实行锁定。在之前表14-5中的例子中,规定锁定顺序是A1、A2,事务T1 和T2都按此顺序锁定,即T2也必须首先锁定A1。当T2请求锁定A1 时,由于A1被T1锁定,所以T2只能等待,当T1释放A1和A2上的锁后,T2就可以锁定A1了,也就可以执行下去了。,诊断与解除死锁,超时法 如果一个事务的等待时间超过了规定的时限,就认为发生了死锁。超时法实现简单,但其不足也很明显。一是有可能误判死锁,当事务因为其他原因使得等待时间超过时限,系统会误认为发生了死锁。二是时限若设置的太长,死锁发生后不能及时发现。顺序锁定法 该方法是用离散数学的图论来诊断死锁的方法。事务的等待图是一个有向图G=(T,U)。T为所数据库系统中正在运行的各个事务的节点的集合,U为有向边的集合,每条边表示事务等待的情况。如果T1事务等待T2事务,则在T1、T2节点之间就有一条从T1指向T2的有向边。事务等待图动态地反映了当前的各个事务之间的等待情况。,锁的粒度,依据数据库的结构层次,可以将锁的粒度从高到低依次划分为:数据库、表、记录、列。,Oracle中锁的分类,DDL锁(字典锁)DML锁(数据锁),Oracle中锁的级别,在Oracle中可以在数据库、数据表、数据表中的行这3个数据对象上使用锁,但不支持对数据表中的列使用锁。数据库级别的锁 表级别的锁 行级别的锁,3,通过SQL*Plus检测与解决锁争用,在Oracle的会话中,sys用户可以通过查询与锁相关的视图来查看锁的信息,了解阻塞会话与被阻塞会话的sid、serial、用户名及其所使用的DML操作语句等内容。,3,首先在SQL*Plus中执行两个会话,这两个会话登录的用户都为scott用户,并对同一资源(数据行)进行操作,使之产生资源争用,其中一会话处于阻塞状态,产生阻塞的会话和被阻塞的会话如下图所示。,通过OEM检测与解决锁争用,在浏览器地址栏中输入:http:/localhost:5500/em就会进入登陆界面,2,通过OEM检测与解决锁争用,首先以sys用户并以sysdba身份登录OEM,进入“主目录”页面,在该页面中单击“性能”超链接,进入“性能”属性页面。然后单击“性能”属性页面中“其他监视链接”标题下的“数据库锁”超连接,将进入“数据库锁”页面。,2,通过OEM检测与解决锁争用,会话详细信息页面,在该页中可以查看数据库中当前用户的锁的详细信息,包括用户名、有关锁的会话标识号、锁的类型、锁的模式、被锁定的对象、从获得锁到现在所过的时间等。单击该页面中的“刷新”按钮,将会显示此时此刻数据库中所包含的锁的信息。,2,SQL详细资料页面,查看会话详细信息后,返回“数据库锁”页面。在该页面的“SQL散列值”(SQL/ID)列中,单击某个散列值,将进入“SQL详细资料”页面。,2,确认页面,查看会话详细信息后,返回“数据库锁”页面。在该页面的“选择”列中,选中一个要中断的会话(如阻塞者会话),单击“中断会话”按钮,将进入“确认”页面。,2,SQL页面,单击该页面中的“显示SQL”按钮,将显示“SQL”页面。在该页中显示了在数据库中杀死该会话所使用的SQL语句。,2,数据库锁页面,返回“确认”页面后,在该页面中单击“是”按钮,将开始杀死该会话,最后返回“数据库锁”页面。如果成功,将会显示“会话已成功终止”的信息。,2,并发的事务之间可能会发生访问冲突,这就需要一个能自动解决事务对数据的并发访问所带来的问题的机制,这种机制就是并发控制锁技术可以有效的解决并行操作的一致性问题不同的数据库管理系统提供的锁实现不尽相同,但是基本原理和技术是相同的锁有两种最基本的类型:独占锁和共享锁锁定的粒度与系统的并发度和并发控制的开销密切相关。一般来讲,锁定的粒度越大,需要锁定的对象就越少,可选择性就越小,并发度就越小,开销就越小;反之,锁定的粒度越小,需要锁定的对象就越多,可选择性就越大,并发度就越大,开销就越大在多个事务并发执行的过程中可能出现死锁,可以使用一次锁定法或顺序锁定法预防死锁,使用超时法或等待图法来解除死锁。Oracle中的锁按照操作可以划分为DDL锁(字典锁)和DML锁(数据锁)。Oracle数据库锁的级别有数据库级锁、表级锁、行级锁可以通过SQL*Plus和OEM检测Oracle中的死锁问题,31,小结,谢 谢!,

    注意事项

    本文(数据库中并发控制.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开