- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 序列、锁、索引和导入导出 上章回顾 子程序是命名的 PL/SQL 块,可带参数并可在需要时随时调用 有两种类型的PL/SQL子程序,即过程和函数 过程用户执行特定的任务,函数用于执行任务并返回值 触发器是当特定事件出现时自动执行的存储过程 触发器分为 DML 触发器、DDL 触发器和数据库级触发器三种类型 DML 触发器的三种类型包括行级触发器、语句级触发器和 INSTEAD OF 触发器 本章内容 序列 索引 理解锁定的概念 序列 序列是用于生成唯一、连续序号的对象 序列可以是升序的,也可以是降序的 使用CREATE SEQUENCE语句创建序列 访问序列 通过序列的伪列来访问序列的值 NEXTVAL 返回序列的下一个值 CURRVAL 返回序列的当前值 更改和删除序列 索引 什么是索引? 一种用户提升查询效率的数据库对象 通过快速定位数据的方法,减少磁盘I/O操作 索引信息与表独立存放 oracle数据库自动使用和维护做引 索引分类 唯一性索引 非唯一性索引 创建索引的方式 自动创建:在定义主键或唯一性约束的时候系统会自动在相应的字段上创建唯一索引 手动创建:用户可以在其他列上创建索引,以加速查询速度 创建/删除索引 可以使用create index 语句手动创建索引 create index 索引名 on 表名(列名[,列名]) 删除索引 使用drop index 语句删除索引 创建索引的原则 下列情况下可以创建索引 字段取值分布范围很广 字段中报刊大量的空值 字段经常出现在where子句或者连接条件中 表经常被访问、数据量很大,且通常每次访问的数据量小于记录总量的2%-4% 下列情况可以不用创建索引 表很小 字段不经常出现在where子句中 每次访问的数据量大于记录总数的2%-4% 表经常更新 被索引的字段作为表达式的一部分被引用 查看索引 查询用户字典视图 user_indexes 可得到用户的所有索引 查询用户字典视图user_ind_columns 可以获知索引建立在哪些字段上 锁的概念-1 锁是数据库用来控制共享资源并发访问的机制。 锁用于保护正在被修改的数据 直到提交或回滚了事务之后,其他用户才可以更新数据 锁的概念-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 行共享 (ROW SHARE) – 禁止排他锁定表 行排他(ROW EXCLUSIVE) – 禁止使用排他锁和共享锁 共享锁(SHARE) 锁定表,仅允许其他用户查询表中的行 禁止其他用户插入、更新和删除行 多个用户可以同时在同一个表上应用此锁 共享行排他(SHARE ROW EXCLUSIVE) – 比共享锁更多的限制,禁止使用共享锁及更高的锁 排他(EXCLUSIVE) – 限制最强的表锁,仅允许其他用户查询该表的行。禁止修改和锁定表 死锁 当两个事务相互等待对方释放资源时,就会形成死锁 Oracle会自动检测死锁,并通过结束其中的一个事务来解决死锁 右边是一个死锁的例子 备份与恢复简介 备份是数据库中数据的副本,它可以保护数据在出现意外损失时最大限度的恢复 Oracle数据库的备份包括以下两种类型: 故障类型 导出和导入实用程序-1 导出和导入实用程序用于实施数据库的逻辑备份和恢复 导出实用程序将数据库中的对象定义和数据备份到一个操作系统二进制文件中 导入实用程序读取二进制导出文件并将对象和数据载入数据库中 导出和导入实用程序-2 导出和导入实用程序的特点有: 可以按时间保存表结构和数据 允许导出指定的表,并重新导入到新的数据库中 可以把数据库迁移到另外一台异构服务器上 在两个不同版本的Oracle数据库之间传输数据 在联机状态下进行备份和恢复 可以重新组织表的存储结构,减少链接及磁盘碎片 导出和导入实用程序-3 使用以下三种方法调用导出和导入实用程序: 导出
文档评论(0)