第三章 oracle的锁和表分区.ppt

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章  锁和表分区 回顾 Oracle函数 Oracle伪列 目标 理解锁定的概念 了解和使用表分区 锁的概念 2-1 锁是数据库用来控制共享资源并发访问的机制。 锁用于保护正在被修改的数据 直到提交或回滚了事务之后,其他用户才可以更新数据 锁的概念 2-2 锁定的优点 一致性 - 一次只允许一个用户修改数据 完整性 - 为所有用户提供正确的数据。如果一个用户进行了修改并保存,所做的修改将反映给所有用户 锁的类型 行级锁 3-1 行级锁 3-2 行级锁是一种排他锁,防止其他事务修改此行 在使用以下语句时,Oracle会自动应用行级锁: INSERT UPDATE DELETE SELECT … FOR UPDATE SELECT … FOR UPDATE语句允许用户一次锁定多条记录进行更新 使用COMMIT或ROLLBACK语句释放锁 行级锁 3-3 SELECT … FOR UPDATE语法:  SELECT … FOR UPDATE [OF columns] [WAIT n | NOWAIT]; 表级锁 3-1 表级锁 3-2 使用命令显示地锁定表,应用表级锁的语法是: LOCK TABLE table_name IN mode MODE; 表级锁 3-3 共享(SHARE):其他用户只能select,不能insert、update、delete,多个用户可以对同一张表加共享锁。 ? ? ? 排他(EXCLUSIVE):其他用户只能select,不能insert、update、delete,不能加任何类型锁。 ? ? ? 行共享(ROW ? ? SHARE):其他用户可以select并加除排他锁以外的其他类型锁。 ? ? ? 行排他(ROW ? ? EXCLUSIVE):其他用户可以select并加除排他锁和共享锁以外的其他类型锁。 ? ? ? 共享行排他(SHARE ? ? ROW ? ? EXCLUSIVE):其他用户只能select,不能insert、update、delete,不能加共享锁、共享行排他锁和排他锁。 死锁 当两个事务相互等待对方释放资源时,就会形成死锁 Oracle会自动检测死锁,并通过结束其中的一个事务来解决死锁 右边是一个死锁的例子 表分区 允许用户将一个表分成多个分区 用户可以执行查询,只访问表中的特定分区 将不同的分区存储在不同的磁盘,提高访问性能和安全性 可以独立地备份和恢复每个分区 表分区的类型 9-1 表分区的类型 9-2 表分区的类型 9-3 范围分区示例 表分区的类型 9-4 表分区的类型 9-5 散列分区示例 表分区的类型 9-6 表分区的类型 9-7 列表分区示例 表分区的类型 9-8 复合分区 范围分区与散列分区的组合 复合分区的语法: 表分区的类型 9-9 复合分区示例 操纵已分区的表 在已分区的表中插入数据与操作普通表完全相同,Oracle会自动将数据保存到对应的分区 查询、修改和删除分区表时可以显式指定要操作的分区 分区维护操作 分区维护操作修改已分区表的分区。 分区维护的类型: 计划事件 - 定期删除最旧的分区 非计划事件 - 解决应用程序或系统问题 分区维护操作有: 添加分区 删除分区 截断分区 合并分区 拆分分区 维护分区 2-1 添加分区 – 在最后一个分区之后添加新分区 维护分区 2-2 合并分区 - 将范围分区或复合分区的两个相邻分区连接起来 总结 锁用于保护多用户环境下被修改的数据 锁分为两种级别,即行级锁和表级锁 表分区允许将一个表划分成几部分,以改善大型应用系统的性能 分区方法包括范围分区、散列分区、复合分区和列表分区 分区维护操作包括添加、删除、截断、合并和拆分分区 修改表 修改表 拒绝访问 Price Name Toy_ID GI Joe Barbie 45 T002 20 T001 并行性 -允许多个用户访问同一数据 Price Name Toy_ID GI Joe Barbie 45 T002 20 T001 修改表中 的数据 查看表中的数据 允许访问 表级锁 行级锁 锁的类型 GI Joe Barbie Name 45 T002 20 T001 Price Toy_ID 更新 T002 行 更新 T001 行 行被锁定 对正在被修改的行进行锁定。其他用户可以访问除被锁定的行以外的行 允许访问 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 venc

文档评论(0)

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

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

1亿VIP精品文档

相关文档