oracle 入门教程系列3

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

锁和表分区第三章(免备案空间)回顾2•Select语句的用途•在SQL*Plus中可以使用各种类型的操作符•使用集合操作符可以合并查询•SQL*PLUS函数被归类为单行函数和分组函数•Rollup和Cube操作符用于查找表达式的聚集和超级聚集•临时表中的数据在用户事务处理期间可持续使用免备案空间目标掌握锁定的概念及其实现用法掌握表分区的概念及其实现方法3锁定概念8-1允许或拒绝资源访问的一种机制资源可以是特定行或整个表控制对数据的并发访问防止在同时访问相同资源的用户之间出现破坏性的交互操作4锁定概念8-2锁定类型―行级锁―表级锁行级锁―行被排他锁定―在某行的锁被释放之前,其他用户不能修改此行―使用commit或rollback命令释放锁―Oracle通过使用INSERT、UPDATE和SELECT…FORUPDATE语句自动获取行级锁5锁定概念8-3SELECT…FORUPDATE子句―在表的一行或多行上放置排他锁―用于防止其他用户更新该行―可以执行除更新之外的其他操作6锁定的概念8-4FORUPDATEWAIT子句―Oracle9i中的新增功能―防止无限期地等待锁定的行―允许对锁的等待时间进行更多的控制―等待间隔必须指定为数值文字―等待间隔不能是表达式、赋值变量或PL/SQL变量免备案空间7锁定概念8-5表级锁―保护表的数据―在多个用户同时访问数据时确保数据的完整性―可以设置为三种模式:共享、共享更新和排他语法:Locktabletable_nameinmode;8锁定概念8-6共享锁―锁定表―仅允许其他用户执行查询操作―不能插入、更新和删除―多个用户可以同时在同一表中放置此锁9共享更新锁―锁定要被更新的行―允许其他用户同时查询、插入、更新未被锁定的行―在SELECT语句中使用“FORUPDATE”子句,可以强制使用共享更新锁―允许多个用户同时锁定表的不同行免备案空间10锁定概念8-7锁定概念8-8排他锁―与其他两种锁相比,排他锁是限制性最强的表锁―仅允许其他用户查询数据―不允许执行插入、删除和更新操作―在同一时间仅允许一位用户在表上放置排他锁―共享锁与此相反11分区的概念是指可以将表拆分为几个部分在数据仓库应用程序中非常有用根据键值范围对表进行拆分表的每个部分称为“分区”分区被独立存储和管理通过引用逻辑表名称进行查询和更新12表分区13-1分区方法―分区类型范围分区散列分区复合分区列表分区13表分区13-2范围分区―根据列值的范围将行映射到分区―由表的分区规范进行定义:PARTITIONBYRANGE(column_list)―由每个单独分区的分区规范进行定义:VALUESLESSTHAN(value_list)―其中column_list是列的有序列表―value_list是column_list中列值的有序列表14表分区13-3范围分区的语法:createtabletable_name(column_namedatatype,column_namedatatype,….)partitionbyrange(column_name)(partitionpartitionnamevalueslessthanvalue,partitionpartitionnamevalueslessthanvalue);散列分区―在分区列上使用hash函数―是比范围分区更好的选择―如果不知道将有多少数据映射到指定的范围,散列分区非常有用―分区的数目应是2的幂―可以对散列分区进行命名,并将其存储在特定的表空间中免备案空间16表分区13-5散列分区的语法:CREATETABLEtable_name(...)PARTITIONBYHASH(column_list)PARTITIONSNOOFPARTITIONS(PARTITIONpartition_nameTABLESPACEtablespace_name,PARTITIONpartition_nameTABLESPACEtablespace_name);17表分区13-6复合分区―使用范围分区方法对数据进行分区,并在每一个分区内使用散列分区方法将其划分为子分区―允许命名子分区―允许将子分区存储在特定的表空间―兼具范围分区和散列分区的优点18表分区13-7复合分区的语法:CREATETABLEtable_name(……)PARTITIONBYRANGE(column_list)SUBPARTITIONBYHASH(column_list)SUBPARTITIONSnumber_of_subpartitionsSTOREIN(tablespace_name_list,,,……..)(PARTITIONparition_nameVALUESLESSTHAN(VALUE)(SUBPARTITIONpartition_nameTABLESPACEtablespace_name,...SUBPARTITIONpartition_nameTABLESPACEtablespace_name,SUBPARTITIONpartition_nameTABLESPACEtablespace_name)PARTITIONpartition_nameVALUESLESSTHAN(VALUE)…………);19表分区13-8列表分区―基于PARTITIONBYLIST中指定的分区键对表进行分区―明确地控制行到分区的映射―指定分区键的离散值―不同于范围分区和散列分区20表分区13-9将记录插入已分区表―记录被存储到表的分区中―基于指定的分区键执行―与定义的分区边界进行比较―示例:SQLINSERTINTOord_mastVALUES('o001','12-jan-96','V001','p','12-jan-97');SQLINSERTINTOord_mastVALUES('o010','12-feb-99','V002','c','15-mar-99');SQLINSERTINTOord_mastVALUES('o012','12-feb-99','V002','c','15-mar-99');21表分区13-10分区维护操作―修改已分区表的一个分区―划分为两类事件:计划事件-定期删除最旧分区的操作非计划事件–解决应用程序或系统问题免备案空间22表分区13-11维护分区―各种分区维护操作如下:添加分区移动删除结合截断拆分合并交换表分区23表分区13-12本地域索引Oracle9i中引入的新功能―在Oracle9i之前的版本中,不能为表的每个分区定义本地域索引―在Oracle9i之前的版本中,仅可以定义非分区的全局域索引―现在,可以为范围分区表上的分区定义本地域索引免备案空间―其他类型的分区不支持此功能24表分区13-13锁用于在用户之间控制对数据的并发访问锁有两种类型-行级锁和表级锁行级锁用于指定的行表级锁用于整个表SELECT…FORUPDATEOF子句用于锁定指定的行25总结-1FORUPDATEWAIT子句用于指定获取锁的时间间隔表级锁包括共享模式、共享更新模式和排他模式分区是将一个表拆分为物理上独立的几个部分类型-范围分区、散列分区和复合分区范围分区-基于键值范围散列分区-基于hash函数分区域索引是Oracle9i中引入的新功能允许在范围分区表上定义本地域索引免备案空间26总结-2

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功