数据库-orcal学习ppt.ppt
文本预览下载声明
共95页 异常和游标管理 子程序和程序包 数据库触发器和内置程序包 集合和成员函数 表分区——散列分区 如果预先不知道将有多少数据要映射到指定范围,或范围分区的大小有很大差异,则选择散列分区要比选择范围分区好。分区数目应该是2的幂(2,4,8等等),以获取最平均的数据分布。可以对散列分区进行命名,并将散列分区存储在特定的表空间中。语法: CREATE TABLE tableName(…) PARTITION BY HASH(columnList) PARTITIONS NO OF PARTITIONS( PARTITION partitionName TABLESPACE tablespaceName, PARTITON partitionName TABLESPACE tablespaceName); 示例: SQLCREATE TABLE dept1( Deptno NUMBER(2), Dname VARCHAR2(14), Loc VARCHAR2(13)) PARTITION BY HASH (deptno) PARTITION p1,PARTITION p2); 表分区——复合分区 复合分区使用范围分区方法对数据进行分区,并在每一个分区内使用散列分区方法将其划分为子分区。复合分区既具备范围分区便于管理的优点,又具备散列分区数据放置和并行操作方面的优点。可以对子分区进行命名,并将其存储在特定的表空间中。语法: CREATE TABLE tableName(…) PARTITION BY RANGE(columnList) SUBPARTITION BY HASH(columnList) SUBPARTITIONS numberOfSubpartitions STORE IN(tablespaceNameList, , ,……) (PARTITION paritionName VALUES LESS THAN(VALUE) (SUBPARTITION partitionName TABLESPACE tableSpaceName, …… SUBPARTITION partitionName TABLESPACE tableSpaceName, SUBPARTITION partitionName TABLESPACE tableSpaceName) PARTITION partitionName VALUES LESS THAN(VALUE) ……. ……); 示例: SQLCREATE TABLE salgrade1( Grade NUMBER, Losal NUMBER, Hisal NUMBER) PARTITION BY RANGE(grade) SUBPARTITION BY HASH(losal,hisal) (PARTITION p1 VALUES LESS THAN(10) SUBPARTITION sp1, SUBPARTITION sp2), PARTITION p2 VALUES LESS THAN(20) SUBPARTITION sp3, SUBPARTITION sp4)); 注释:复合分区表的分区仅仅是逻辑结构,其数据存储在子分区的段中。因此,分区的数目可以小于子分区的数目。表分区或子分区名称必须唯一。可以重命名分区或子分区;但是,不能创建分区或子分区名称的任何同义词。 表分区——列表分区 列表分区允许基于PARTITION BY LIST中指定的分区键对表进行分区。它允许用户明确地控制到分区的映射。 示例: SQLCREATE TABLE salesDetails( salesId number(6), smanName VARCHAR(20), salesState VARCHAR2(15), salesDate DATE, Amount NUMBER(10)) PARTITION BY LIST(smanName)( PARTITION saleEast VALUES(‘antony’,’henry’,’jack’), PARTITION saleWest VALUES(‘peter’,’serena’,’venus’)); 插入数据: (10,’antony’,’California’,’1-apr-03’,6000);//此行映射到saleEast分区 (20,’peter’,’illinois’,’10-apr-04’,5000);//此行映射到saleWest分区 (5,’george’,’New York’,’1-apr-04’,6000);此行不映射到任何分区 分区列和子分区列以及分区键和子分区键 表的分区或子分区列由列的列表组成,这些列的值确定如何对数据进行分区或划分
显示全部