OracleChapter3_讲授.ppt
上传人:sy****28 上传时间:2024-09-14 格式:PPT 页数:26 大小:253KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

OracleChapter3_讲授.ppt

OracleChapter3_讲授.ppt

预览

免费试读已结束,剩余 16 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

锁和表分区回顾目标锁定概念8-1锁定类型行级锁表级锁行级锁行被排他锁定在某行的锁被释放之前,其他用户不能修改此行使用commit或rollback命令释放锁Oracle通过使用INSERT、UPDATE和SELECT…FORUPDATE语句自动获取行级锁SELECT…FORUPDATE子句在表的一行或多行上放置排他锁用于防止其他用户更新该行可以执行除更新之外的其他操作FORUPDATEWAIT子句Oracle9i中的新增功能防止无限期地等待锁定的行允许对锁的等待时间进行更多的控制等待间隔必须指定为数值文字等待间隔不能是表达式、赋值变量或PL/SQL变量表级锁保护表的数据在多个用户同时访问数据时确保数据的完整性可以设置为三种模式:共享、共享更新和排他语法:Locktable<table_name>in<mode>;共享锁锁定表仅允许其他用户执行查询操作不能插入、更新和删除多个用户可以同时在同一表中放置此锁共享更新锁锁定要被更新的行允许其他用户同时查询、插入、更新未被锁定的行在SELECT语句中使用“FORUPDATE”子句,可以强制使用共享更新锁允许多个用户同时锁定表的不同行排他锁与其他两种锁相比,排他锁是限制性最强的表锁仅允许其他用户查询数据不允许执行插入、删除和更新操作在同一时间仅允许一位用户在表上放置排他锁共享锁与此相反分区的概念是指可以将表拆分为几个部分在数据仓库应用程序中非常有用根据键值范围对表进行拆分表的每个部分称为“分区”分区被独立存储和管理通过引用逻辑表名称进行查询和更新分区方法分区类型范围分区散列分区复合分区列表分区范围分区根据列值的范围将行映射到分区由表的分区规范进行定义:PARTITIONBYRANGE(column_list)由每个单独分区的分区规范进行定义:VALUESLESSTHAN(value_list)其中column_list是列的有序列表value_list是column_list中列值的有序列表范围分区的语法:createtable<table_name>(column_namedatatype,column_namedatatype,….)partitionbyrange(column_name)(partition<partitionname>valueslessthan<value>,partition<partitionname>valueslessthan<value>);散列分区在分区列上使用hash函数是比范围分区更好的选择如果不知道将有多少数据映射到指定的范围,散列分区非常有用分区的数目应是2的幂可以对散列分区进行命名,并将其存储在特定的表空间中散列分区的语法:CREATETABLE<table_name>(...)PARTITIONBYHASH(column_list)PARTITIONS<NOOFPARTITIONS>(PARTITION<partition_name>TABLESPACE<tablespace_name>,PARTITION<partition_name>TABLESPACEtablespace_name>);复合分区使用范围分区方法对数据进行分区,并在每一个分区内使用散列分区方法将其划分为子分区允许命名子分区允许将子分区存储在特定的表空间兼具范围分区和散列分区的优点复合分区的语法:CREATETABLE<table_name>(……)PARTITIONBYRANGE(column_list)SUBPARTITIONBYHASH(column_list)SUBPARTITIONS<number_of_subpartitions>STOREIN(<tablespace_name_list>,<>,<>,……..)(PARTITION<parition_name>VALUESLESSTHAN(<VALUE>)(SUBPARTITION<partition_name>TABLESPACE<tablespace_name>,...SUBPARTITION<partition_name>TABLESPACE<tablespace_name>,SUBPARTITION<partition_name>TABLESPACE<tablespace_name>)PARTITION<partition_name>VALUESLESSTHAN(<VALUE>)…………);列表分区基于PARTITIONBYLIST中指定的分区键对表进行分区明确地控制行到分区的映射指定分区键的离散值不同于范围分区和散列分区