ITPub博客

首页 > 数据库 > Oracle > oracle簇cluster

oracle簇cluster

原创 Oracle 作者:jss001 时间:2009-02-09 16:52:31 0 删除 编辑

1 簇概念:

是一组表,如果应用程序中的SQL 语句经常联结两个或多个表,可以把这些表以簇方式进行创建以改善性能。簇中的表存储在相同的数据块中,并且各个表中的相同的列值只存储一个。

簇(Cluster)就是将一组有机联系的表在物理上存放在一起并且相同的关键列的值只存储一份,用于提高处理效率的一项技术

2 限制:

l 簇中的每个表必须有一列与簇中指定的列的 大小和类型匹配;

l 簇码中可用列的最大数目是16,即一个簇最多有16列作为簇码;

l 列的最大长度为239字节;

l LONG 和LONG RAW 不能作为簇列码。

3 3 建立簇:

1) 创建簇语法

CREATE CLUSTER cluster

( column datatype[,colmn datatype]…)

[PCTUSED 40|intger] [ PCTFREE 10| intger]

[ SIZE intger ]

[INITRANS 1|intger] [MAXTRANS 255|intger]

[TABLESPACE tablespace]

[STORAGE storage]

2)创建簇及其表的步骤:

l 用 CREATE CLUSTER创建簇

l 用CREATE INDEX创建簇索引

l 用CREATE TABLE 创建表,并指定簇

l 插入数据并进行DML 操作

4 改变簇:

在用户具有 ALTER ANY CLUSTER 的权限情况下,可以对已建好的簇(CLUSTER )改变其设置,如:

l 物理属性:PCTFREE,PCTUSED,INITRANS,MAXTRANS和STORAGE;

l 为CLUSTER 关键字值存储所有行所需的一般空间容量;

l 缺省平行度。

命令语法:

ALTER CLUSTER Cluster_name

{ PCTUSED integer

| PCTFREE integer

| SIZE integer

| INITRANS integer

| MAXTRANS integer

| STORAGE Cluase

}

5 删除簇:

只要用户具有 DROP ANY CLUSTER权限均可以对所有的CLUSTER进行删除。

语法如下:

DROP CLUSTER [user.]cluster [INCLUDING TABLES]

6 收集簇信息:

删除簇索引:一个簇的索引可以被删除而不影响表的数据,但是当簇的索引被删除后,属于该簇的表就变为不可用,所以当删除簇的索引后还须再建立该簇的索引才行。有时为了消除盘空间的碎片我们常进行删除簇索引操作。

l DBA_CLU_COLUMNS 或USER_CLU_COLUMNS

l DBA_CLUSTERS或USER_CLUSTER

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/18921899/viewspace-1017048/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: EXPLAIN结果含义
请登录后发表评论 登录
全部评论
  • 博文量
    306
  • 访问量
    871797