Oracle9i第11章 事务和锁.pptVIP

  • 1
  • 0
  • 约1.14千字
  • 约 18页
  • 2017-12-26 发布于河北
  • 举报
Oracle9i第11章 事务和锁

第十三章 事务和锁;事务;对事务的控制包含事务提交、事务回滚和设立保存点。 在Oracle中规定,提交之后的更新操作是不能撤消的,未提交的更新操作是可以撤消的。这种操作可以通过COMMIT和ROLLBACK命令来实现。 在提交之前,只有修改了数据的用户才能看到数据的改变,而其它用户看到的是改变之前的数据。在提交之后,数据库的数据才会真正改变,这时其它用户和修改数据用户看到的内容是一致的。;事务的提交;自动提交 用户可以使用SET命令来设置自动提交环境。如下所示: SET AUTO ON 经过设置后,SQL PLUS会自动提交用户的更新工作。 一旦设置了自动提交,用户每一次执行DML语句(INSERT、UPDATE和DELETE语句),系统将会立即自动进行提交。;事务的回滚;保存点;锁;数据操作(DML)锁;DML锁的用途 保护被多个用户并行存取的数据的完整性。DML锁可以防止同时进行的DML操作的破坏性干扰。 例如,DML锁保证一张表中的指定行一次仅能被一个事务修改。它们还保证如果对某个表的DML操作事务还未提交时,该表便不能被删除。;DML锁的模式 下面列举了用于DML的Oracle锁模式: 行共享(Row Share, RS):行共享锁是一个共享的表锁。它是一个在被查询行上的专用锁。 行专用(Row Execlusive, RX):行专用锁通常表明持有该锁的事务已经对表中的行完成了一次或多次修改。;共享锁(Share, S):假如一个事务持有一个共享表锁,那么它便防止其它事务在该表中执行DML操作。 共享行专用(Share Row Execlusive, SRX):假如一个事务包含一个SRX表锁,那么它防止其它事务执行DML或SELECT……FOR UPDATE语句。 专用(Execlusive, X):专用锁是表锁的最具限制性的形式,它允许持有表锁的事务对该表进行独占操作。;字典(DDL)锁;专用DDL锁 当诸如CREATE、ALTER和DROP这样的语句用于一个对象时使用此锁。 专用DDL锁的特征是假如另外一个用户保留了任何级别的锁的话,那么本用户将不能得到表中的专用DDL锁。 例如,另一个用户在该表上有一个未提交的事务,那么对此表的ALTER TABLE语句将会失效。;共享DDL锁 当诸如GRANT和GREATE PACKAGE这样的语句用于一个对象时使用此锁。 共享锁的特征是一个共享DDL锁不能阻止类似的DDL语句或任何DML语句用于一个对象上,但是它能防止另一个用户改变或删除已引用的对象。 共享DDL锁的另一个特征是在DDL语句执行期间它一直维持,直到发生一个隐含的提交。;手工锁定;死锁;小结

文档评论(0)

1亿VIP精品文档

相关文档