北大青鸟第三章锁和表分区.ppt

上传人:b****1 文档编号:1649833 上传时间:2022-10-23 格式:PPT 页数:26 大小:284.50KB
下载 相关 举报
北大青鸟第三章锁和表分区.ppt_第1页
第1页 / 共26页
北大青鸟第三章锁和表分区.ppt_第2页
第2页 / 共26页
北大青鸟第三章锁和表分区.ppt_第3页
第3页 / 共26页
北大青鸟第三章锁和表分区.ppt_第4页
第4页 / 共26页
北大青鸟第三章锁和表分区.ppt_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

北大青鸟第三章锁和表分区.ppt

《北大青鸟第三章锁和表分区.ppt》由会员分享,可在线阅读,更多相关《北大青鸟第三章锁和表分区.ppt(26页珍藏版)》请在冰豆网上搜索。

北大青鸟第三章锁和表分区.ppt

锁和表分区,第三章,2,2,回顾,Select语句的用途在SQL*Plus中可以使用各种类型的操作符使用集合操作符可以合并查询SQL*PLUS函数被归类为单行函数和分组函数Rollup和Cube操作符用于查找表达式的聚集和超级聚集临时表中的数据在用户事务处理期间可持续使用,3,3,目标,掌握锁定的概念及其实现用法掌握表分区的概念及其实现方法,4,4,锁定概念8-1,允许或拒绝资源访问的一种机制资源可以是特定行或整个表控制对数据的并发访问防止在同时访问相同资源的用户之间出现破坏性的交互操作,5,5,锁定类型行级锁表级锁行级锁行被排他锁定在某行的锁被释放之前,其他用户不能修改此行使用commit或rollback命令释放锁Oracle通过使用INSERT、UPDATE和SELECTFORUPDATE语句自动获取行级锁,锁定概念8-2,6,6,SELECTFORUPDATE子句在表的一行或多行上放置排他锁用于防止其他用户更新该行可以执行除更新之外的其他操作,锁定概念8-3,7,7,FORUPDATEWAIT子句Oracle9i中的新增功能防止无限期地等待锁定的行允许对锁的等待时间进行更多的控制等待间隔必须指定为数值文字等待间隔不能是表达式、赋值变量或PL/SQL变量,锁定的概念8-4,8,8,表级锁保护表的数据在多个用户同时访问数据时确保数据的完整性可以设置为三种模式:

共享、共享更新和排他语法:

Locktablein;,锁定概念8-5,9,9,共享锁锁定表仅允许其他用户执行查询操作不能插入、更新和删除多个用户可以同时在同一表中放置此锁,锁定概念8-6,10,10,共享更新锁锁定要被更新的行允许其他用户同时查询、插入、更新未被锁定的行在SELECT语句中使用“FORUPDATE”子句,可以强制使用共享更新锁允许多个用户同时锁定表的不同行,锁定概念8-7,10,11,11,排他锁与其他两种锁相比,排他锁是限制性最强的表锁仅允许其他用户查询数据不允许执行插入、删除和更新操作在同一时间仅允许一位用户在表上放置排他锁共享锁与此相反,锁定概念8-8,11,12,12,分区的概念是指可以将表拆分为几个部分在数据仓库应用程序中非常有用根据键值范围对表进行拆分表的每个部分称为“分区”分区被独立存储和管理通过引用逻辑表名称进行查询和更新,表分区13-1,12,13,13,分区方法分区类型范围分区散列分区复合分区列表分区,表分区13-2,13,14,14,范围分区根据列值的范围将行映射到分区由表的分区规范进行定义:

PARTITIONBYRANGE(column_list)由每个单独分区的分区规范进行定义:

VALUESLESSTHAN(value_list)其中column_list是列的有序列表value_list是column_list中列值的有序列表,表分区13-3,14,15,15,范围分区的语法:

createtable(column_namedatatype,column_namedatatype,.)partitionbyrange(column_name)(partitionvalueslessthan,partitionvalueslessthan);,表分区13-4,15,16,16,散列分区在分区列上使用hash函数是比范围分区更好的选择如果不知道将有多少数据映射到指定的范围,散列分区非常有用分区的数目应是2的幂可以对散列分区进行命名,并将其存储在特定的表空间中,表分区13-5,16,17,17,散列分区的语法:

CREATETABLE(.)PARTITIONBYHASH(column_list)PARTITIONS(PARTITIONTABLESPACE,PARTITIONTABLESPACEtablespace_name);,表分区13-6,17,18,18,复合分区使用范围分区方法对数据进行分区,并在每一个分区内使用散列分区方法将其划分为子分区允许命名子分区允许将子分区存储在特定的表空间兼具范围分区和散列分区的优点,表分区13-7,18,19,19,复合分区的语法:

CREATETABLE()PARTITIONBYRANGE(column_list)SUBPARTITIONBYHASH(column_list)SUBPARTITIONSSTOREIN(,.)(PARTITIONVALUESLESSTHAN()(SUBPARTITIONTABLESPACE,.SUBPARTITIONTABLESPACE,SUBPARTITIONTABLESPACE)PARTITIONVALUESLESSTHAN();,表分区13-8,19,20,20,列表分区基于PARTITIONBYLIST中指定的分区键对表进行分区明确地控制行到分区的映射指定分区键的离散值不同于范围分区和散列分区,表分区13-9,20,21,21,将记录插入已分区表记录被存储到表的分区中基于指定的分区键执行与定义的分区边界进行比较示例:

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);,表分区13-10,21,22,22,分区维护操作修改已分区表的一个分区划分为两类事件:

计划事件-定期删除最旧分区的操作非计划事件解决应用程序或系统问题,表分区13-11,22,23,23,维护分区各种分区维护操作如下:

添加分区移动删除结合截断拆分合并交换表分区,表分区13-12,23,24,24,本地域索引Oracle9i中引入的新功能在Oracle9i之前的版本中,不能为表的每个分区定义本地域索引在Oracle9i之前的版本中,仅可以定义非分区的全局域索引现在,可以为范围分区表上的分区定义本地域索引其他类型的分区不支持此功能,表分区13-13,24,25,25,锁用于在用户之间控制对数据的并发访问锁有两种类型-行级锁和表级锁行级锁用于指定的行表级锁用于整个表SELECTFORUPDATEOF子句用于锁定指定的行,总结-1,25,26,26,FORUPDATEWAIT子句用于指定获取锁的时间间隔表级锁包括共享模式、共享更新模式和排他模式分区是将一个表拆分为物理上独立的几个部分类型-范围分区、散列分区和复合分区范围分区-基于键值范围散列分区-基于hash函数分区域索引是Oracle9i中引入的新功能允许在范围分区表上定义本地域索引,总结-2,26,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1