网站大量收购闲置独家精品文档,联系QQ:2885784924

第三章理论课锁和表分区.pdf

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章理论课锁和表分区

《Oracle 数据库应用 》理论课 锁和表分区  本章技能目标  理解锁定的概念  了解和使用表分区 1. 锁的概念 锁是数据库用来控制共享资源并发访问的机制。在多用户环境下,多个用户可同时访问相同的 数据。Oracle 提供锁已确保在多用户环境下的数据的完整性和一致性,在提交或回滚事务之前, Oracle 会锁定正在被修改的数据,锁用于保护正在被修改的数据。在用户完成或者回滚了事务 之后,锁会被释放。直到提交或回滚了事务之后,其他用户才可以更新数据。 大多数情况下,锁是不需要开发者显示干预的。当更新数据行的时候,我们不必对其进行锁定, Oracle 会为我们完成这些工作。有些时候显示锁定是必须的,但是大多数时候,锁会自行管理。 锁定的优点  一致性 - 一次只允许一个用户修改数据  完整性 - 为所有用户提供正确的数据。如果一个用户进行了修改并保存,所做的修改 将反映给所有用户  并行性 -允许多个用户访问同一数据 锁用于保护表中的数据,每次只允许一个事务对表中的特定的行进行更新。例如,如果一个用 户正在更新表中的数据,则另一个用户就不能同时删除该数据。因此,锁提供了高度的数据并 发性。 锁的类型  行级锁 (用于特定行)  表级锁 (用于整个表) 1.1 行级锁 行级锁只对正在被修改的行进行锁定。其他用户可以访问除被锁定的行以外的行。例如: 锁和表分区 如果用户1 正在更新Toys 表中的第一行,则用户2 可以修改Toys 表中的第二行。 行级锁是一种排他锁,防止其他事务修改此行,但是不会阻止读取此行的操作。在使用以 下语句时,Oracle 会自动应用行级锁:INSERT ,UPDATE ,DELETE ,SELECT „ FOR UPDATE 。 SELECT …FOR UPDATE 语句允许用户一次锁定多条记录进行更新,且只能由发起查询的 用户进行编辑,只有在完成或者回滚了事务之后,锁会被释放。其他用户才可以编辑这些 数据。使用COMMIT 或ROLLBACK 语句释放锁。 SELECT …FOR UPDATE 语法: SELECT „ FOR UPDATE [OF columns] [WAIT n | NOWAIT]; 其中:  OF 子句用于指定即将更新的列,即锁定行上的特定列。  WAIT 子句指定等待其他用户释放锁的秒数,防止无限期的等待。 例1:演示如何锁定vencode 值为“V002 ”的行。销售部门的用户需要更新order_master 表中某些行。可以应用锁来防止其他用户在更新完成之前操作这些行。 例1: SQL SELECT * FROM order_master WHERE vencode=’V002 ’ FOR UPDATE OF odate, del_date; SQL UPDATE order_master SET del_date=’28-8 月-05’ WHERE vencode= ’V002 ’; SQL COMMIT; 例 1 首先锁定要更新的行,防止其他用户更新这些行,然后用UPADTE 命令执行更新 操作,最后通过提交命令释放锁。 例2 :演示WAIT 子句的用法。 可以通过此实验来理解此概念。先启动一个 SQL*Plus,执行下面的命令,先不要提交 或者回滚。 例2: SQL SELECT * FROM order_master WHERE vencode=’V002 ’ FOR UPDATE; 以上命令会立即返回到SQL提示符。再开启一个SQL*Plus,以相同的用户登录,执行 下面的命令。 SQL SELECT * FROM order_master WHERE vencode=’V002 ’

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档