欢迎来到天天文库
浏览记录
ID:46954521
大小:103.00 KB
页数:19页
时间:2019-12-01
《详解ORACLE簇表、堆表、IOT表、分区表》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.详解ORACLE簇表、堆表、IOT表、分区表簇和簇表 簇其实就是一组表,是一组共享相同数据块的多个表组成。将经常一起使用的表组合在一起成簇可以提高处理效率。 在一个簇中的表就叫做簇表。建立顺序是:簇→簇表→数据→簇索引 1、创建簇的格式 CREATECLUSTERcluster_name (columndate_type[,columndatatype]...) [PCTUSED40
2、integer][PCTFREE10
3、integer] [SIZEinteger] [IN
4、ITRANS1
5、integer][MAXTRANS255
6、integer] [TABLESPACEtablespace] [STORAGEstorage] SIZE:指定估计平均簇键,以及与其相关的行所需的字节数。 2、创建簇 createclustermy_clu(deptnonumber) pctused60 pctfree10 size1024 tablespaceusers storage(initial128knext128kminextents2maxext
7、ents20.. ); 3、创建簇表 createtablet1_dept(deptnonumber,dnamevarchar2(20) ) clustermy_clu(deptno); createtablet1_emp(empnonumber,enamevarchar2(20),birth_datedate,deptnonumber ) clustermy_clu(deptno); 4、为簇创建索引 createindexclu_indexonclustermy_
8、clu; 注:若不创建索引,则在插入数据时报错:ORA-02032:clusteredtablescannotbeusedbeforetheclusterindexisbuilt 管理簇 使用ALTER修改簇属性(必须拥有ALTERANYCLUSTER的权限) 1、修改簇属性 可以修改的簇属性包括: *PCTFREE、PCTUSED、INITRANS、MAXTRANS、STORAGE *为了存储簇键值所有行所需空间的平均值SIZE.. *默认并行度 注: *不能修改I
9、NITIAL和MINEXTENTS的值 *PCTFREE、PCTUSED、SIZE参数修改后适用于所有数据块 *INITRANS、MAXTRANS仅适用于以后分配的数据块 *STORAGE参数修改后仅影响以后分配给簇的盘区 格式: alterclustermy_clu pctused40 2、删除簇 dropclustermy_clu;--仅适用于删除空簇 dropclustermy_cluincludingtables;--删除簇和簇表 dropclustermy
10、_cluincludingtablescascadeconstraints; --同时删除外键约束 注:簇表可以像普通表一样删除。 散列聚簇表 在簇表中,Oracle使用存储在索引中的键值来定位表中的行,而在散列聚簇表中,使用了散列函数代替了簇索引,先通过内部函数或者自定义的函数进行散列计算,然后再将计算得到的码值用于定位表中的行。创建散列簇需要用到HASHKEYS子句。 1、创建散列簇 createclustermy_clu_two(empnonumber(10)) pctuse
11、d70.. pctfree10 tablespaceusers hashisempno hashkeys150; 说明: *hashis子句指明了进行散列的列,如果列是唯一的标示行,就可以将列指定为散列值 *hashkeys指定和限制散列函数可以产生的唯一的散列值的数量 2、创建散列表 createtablet2_emp(empnonumber(10),enamevarchar2(20),birth_datedate,deptnonumber) clustermy_cl
12、u_two(empno); 注意: *必须设置数值的精度(具体原因不详) *散列簇不能也不用创建索引 *散列簇不能ALTER:size、hashkeys、hashis参数 堆表1.基本概念执行CREATETABLE语句时,默认得到的表类型就是堆组织表。其他类型的表结构需要在CREATE..TABLE语句本身中指定它。堆组织表中,数据以堆的
此文档下载收益归作者所有