Oracle的簇和簇表

Oracle的簇和簇表

簇由一组共享相同数据块的多个表组成,它将这些表的相关行一起存储到相同数据块中,这样可以减少查询数据所需的磁盘读取量。创建簇后,用户可以在簇中创建表,这些表成为簇表。

例如,scott用户中有一个员工信息表emp、部门信息表dept,这两个表共享部门编号deptno列。当将emp和dept表组成簇后,在物理上Oracle将emp和dept表中有关每个部门的所有员工信息和部门信息行存储到相同的数据块中。因为簇将不同表的相关行一起存储到相同的数据块中,所以合理使用簇可以帮助减少查询数据所需的磁盘读取量。而对于经常单独使用的表不应该使用簇。

创建簇

创建簇的语法形式如下:

CREATE CLUSTER cluster_name(COLUMN date_type[,COLUMN date_type]...)
[PCTUSED 40 | INTEGER]
[PCTFREE 10 | INTEGER]
[SIZE INTEGER]
[INITRANS 1 | INTEGER]
[MAXTRANS 255 | INTEGER]
[TABLESPACE tablespace_name]
[STORAGE storage]

例1:
以SYSDBA角色登录并赋予用户相关权限:

GRANT  ALTER ANY CLUSTER TO siege;

然后创建簇:

CREATE CLUSTER cluster_student(sid NUMBER)
PCTUSED 40
PCTFREE 10
SIZE 1024
STORAGE (
        INITIAL 128k
        NEXT 128k
        MINEXTENTS 2
        MAXEXTENTS 20
)TABLESPACE learning;

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。