Oracle 创建簇

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/javazilu/article/details/70240031
————————————————
版权声明:本文为CSDN博主「紫露love」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/javazilu/article/details/70240031
<在此声明,此博文转摘自别处,具体出处不详。>
簇的概念以及如何创建簇!
*
簇可以实现将大的表和索引进行拆分,使处理速度提高和管理方便
1.1簇的概念
(cluster)就是将一组有机联系的表在物理上存放在一起,并且相同的关键列的值只存储一份,用于提高处理效率的的一项技术; oracle并行服务器通过使一组节点共享同一簇中的工作负载来扩展Windows NT的能力,
oracle提供具有高可用性和高伸缩性的簇解决方案。
(1).何时建立簇
如果通过引用完整性把两个或多个表联系起来并经常使用联结,则为这个表创建一个索引簇
(2).有时簇会损害性能
对频繁更新或删除的表使用簇对性能有不利的影响
(3).限制
.簇中的每一个表必须有一列与簇中指定的列的大小和类型匹配
.簇码中可用的最大数目是16
.列的最大长度为239字节
.LONG和LONG RAW不能作为簇列码
1.2
1.创建簇语法
CREATE CLUSTER cluster(column datatype)
[pctused 40|integer] [pctfree 10|integer]
[size integer]
[initrans 1|integer][maxtrans 255|integer]
[tablespace tablespace]
[storage storage]
2.创建簇及其表的步骤[*注意顺序]
(1)用CREATE CLUSTER创建簇
(2)用CREATE INDEX创建簇索引
(3)用CREATE TABLE创建表,并指定簇
(4)插入数据并进行DML操作

[例]住房公积金(创建簇的具体实例)
SQL> drop cluster emp_unit;
SQL> create cluster emp_unit(acc_no varchar2(15))
2 tablespace gao_tablespace
3 storage(initial 1m maxextents 121 pctincrease 0);
SQL> create index unit_inf_ind on cluster emp_unit
2 tablespace gao_tablespace;
SQL> drop table unit_inf;
SQL> create table unit_inf
2 (
3 bank_code varchar2(6),
4 acc_no varchar2(15),
5 proc_date date,
6 unit_name varchar2(50),
7 area varchar2(20),
8 address varchar2(50),
9 zip varchar2(6),
10 master varchar2(20),
11 belong varchar2(20),
12 ecnomic varchar2(20),
13 tot_emp number(6),
14 sal_bank varchar2(40),
15 sal_date date,
16 pay_tot number(6),
17 pay_money number(13,2),
18 pro_depart varchar2(40)
19 )
20 cluster emp_unit(acc_no);
SQL> create unique index unit_inf_in on unit_inf(acc_no)
2 storage(initial 1m next 512k maxextents 121 pctincrease 0);
SQL> drop table pay_lst_det;
SQL> create table pay_lst_det
2 (
3 bank_code varchar2(6) not null,
4 acc_no varchar2(15) not null,
5 emp_acc_no varchar2(20) not null,
6 table_date date,
7 name varchar2(10)
8 )
9 cluster emp_unit(acc_no);

oracle_gao_dba 发表于 2004-6-21 21:07
1.3改变簇
在用户具有ALTER ANY CLUSTER的权限下,可以对已建好的簇(cluster)改变其设置
.物理属性PCTFREE,pctused,initrans,maxtrans,storage
.为cluster关键字值存储所有行所需的一般空间容量
.默认平行度
ALTER CLUSTER CLUSTER_NAME
|PCTUSED INTEGER
|PCTFREE INTEGER
|SIZE INTEGER
|INITRANS INTEGER
|MAXTRANS INTEGER
|STORAGE CLUSTER
[例]修改簇的参数
SQL> ALTER CLUSTER EMP_UNIT
2 PCTFREE 30
3 PCTUSER 60;

1.4删除簇
drop cluster [user.]cluster [including tables]

1.5删除簇索引
有时为了清除盘空间的碎片,我们经常进行删除簇索引的操作.

1.6收集簇信息
.DBA_CLU_COLUMNS或USER_CLU_COLUMNS
.DBA_CLUSTERS或USER_CLUSTERS
SQL> desc dba_clu_columns;
名称 是否为空?类型


OWNER NOT NULL VARCHAR2(30)
CLUSTER_NAME NOT NULL VARCHAR2(30)
CLU_COLUMN_NAME NOT NULL VARCHAR2(30)
TABLE_NAME NOT NULL VARCHAR2(30)
TAB_COLUMN_NAME VARCHAR2(4000)

SQL> desc dba_clusters;
名称 是否为空?类型


OWNER NOT NULL VARCHAR2(30)
CLUSTER_NAME NOT NULL VARCHAR2(30)
TABLESPACE_NAME NOT NULL VARCHAR2(30)
PCT_FREE NUMBER
PCT_USED NOT NULL NUMBER
KEY_SIZE NUMBER
INI_TRANS
————————————————
版权声明:本文为CSDN博主「紫露love」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/javazilu/article/details/70240031

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值