第五讲锁及事务的高级使用二_第1页
第五讲锁及事务的高级使用二_第2页
第五讲锁及事务的高级使用二_第3页
第五讲锁及事务的高级使用二_第4页
第五讲锁及事务的高级使用二_第5页
已阅读5页,还剩13页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、讲师:文心讲师:文心PL/SQL高级编程高级编程 锁及事务的高级使用锁及事务的高级使用 理解表级锁的概念掌握表级锁的使用锁是数据库用来控制共享资源并发访问的机制。锁用于保护正在被修改的数据直到提交或回滚了事务之后,其他用户才可以更新数据修改表修改表拒绝访问SnoNameSage95001张三2095002李四22表级锁行级锁锁的类型SnoNameSage95001张三2095002李四22修改表中的行 更新表 拒绝访问锁定整个表,限制其他用户对表的访问。表级锁类型行共享行排他共享使用命令显示地锁定表,应用表级锁的语法是: LOCK TABLE table_name IN mode MODE;共

2、享行排他排他行共享 (ROW SHARE) 禁止排他锁定表行排他(ROW EXCLUSIVE) 禁止使用排他锁和共享锁共享锁(SHARE)锁定表,仅允许其他用户查询表中的行禁止其他用户插入、更新和删除行多个用户可以同时在同一个表上应用此锁共享行排他(SHARE ROW EXCLUSIVE) 比共享锁更多的限制,禁止使用共享锁及更高的锁排他(EXCLUSIVE) 限制最强的表锁,仅允许其他用户查询该表的行。禁止修改和锁定表当一个事物在进行DML操作时,所在的事务会对所操作的表加表级锁,以保证在这个事务过程中表不被改变。RS (Row share table lock) 以下的操作会产生RS lo

3、ck Select * from tab for update. LOCK TABLE table IN ROW SHARE MODE; RS不允许的操作: LOCK TABLE table IN EXCLUSIVE MODE; RX (Row Exclusive Table Locks) 以下的操作会产生RS lock 1:INSERT,UPDATE ,DELETE 2:LOCK TABLE table IN ROW EXCLUSIVE MODE; RX不允许的操作LOCK TABLE table IN SHARE MODE; LOCK TABLE table IN SHARE EXCLUS

4、IVE MODE; LOCK TABLE table IN EXCLUSIVE MODE; S (Share Table Locks )以下操作产生S lock. LOCK TABLE table IN SHARE MODE; S不允许的操作 LOCK TABLE table IN SHARE ROW EXCLUSIVE MODE; LOCK TABLE table IN EXCLUSIVE MODE; LOCK TABLE table IN ROW EXCLUSIVE MODE; SRX (Share Row Exclusive Table Locks) 以下操作产生SRX LOCK LOC

5、K TABLE table IN SHARE ROW EXCLUSIVE MODE; SRX不允许的操作. LOCK TABLE table IN SHARE MODE; LOCK TABLE table IN SHARE ROW EXCLUSIVE MODE; LOCK TABLE table IN ROW EXCLUSIVE MODE; LOCK TABLE table IN EXCLUSIVE MODE; X( Exclusive Table Locks )以下操作产生X LOCK LOCK TABLE table IN EXCLUSIVE MODE; X不允许的操作 不允许所有的操作

6、-0:none-1:null 空 Select,有时会在v$locked_object出现。-2:Row-S 行共享(RS):共享表锁,sub share 2级锁有:Select for update,Lock For Update,Lock Row Share select for update当对话使用for update子串打开一个游标时,所有返回集中的数据行都将处于行级(Row-X)独占式锁定,其他对象只能查询这些数据行,不能进行update、delete或select for update操作。-3:Row-X 行独占(RX):用于行的修改,sub exclusive 3级锁有:In

7、sert, Update, Delete, Lock Row Exclusive 没有commit之前插入同样的一条记录会没有反应, 因为后一个3的锁会一直等待上一个3的锁, 我们必须释放掉上一个才能继续工作。-4:Share 共享锁(S):阻止其他DML操作,share 4级锁有:Create Index, Lock Share locked_mode为2,3,4不影响DML(insert,delete,update,select)操作, 但DDL(alter,drop等)操作会提示ora-00054错误。00054, 00000, resource busy and acquire wit

8、h NOWAIT specified/ *Cause: Resource interested is busy./ *Action: Retry if necessary.-5:S/Row-X 共享行独占(SRX):阻止其他事务操作,share/sub exclusive级锁有:Lock Share Row Exclusive具体来讲有主外键约束时update / delete . ; 可能会产生4,5的锁。-6:exclusive 独占(X):独立访问使用,exclusive 6级锁有:Alter table, Drop table, Drop Index, Truncate table, Lock Exclusive当两个事务相互等待对方释放

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论