簇和簇表
 
    簇其实就是一组表,是一组共享相同数据块的多个表组成。 将经常一起使用的表组合在一起成簇可以提高处理效率。
 
    在一个簇中的表就叫做簇表。建立顺序是:簇→簇表→数据→簇索引
 
    1、创建簇的 格式
 
    CREATE CLUSTER cluster_name
    (column date_type [,column datatype]...)
    [PCTUSED 40 | integer] [PCTFREE 10 | integer]
    [SIZE integer]
    [INITRANS 1 | integer] [MAXTRANS 255 | integer]
    [TABLESPACE tablespace]
    [STORAGE storage]

SIZE:指定估计平均簇键,以及与其相关的行所需的字节数。

2、创建簇

create

cluster
my_clu (deptno
number
)

pctused

60

pctfree

10

size

1024

tablespace
users

storage
(

initial

128
k

next

128
k

minextents

2

maxextents

20

);

3、创建簇表

create

table
t1_dept(

deptno
number
,

dname
varchar2
(
20
)

)

cluster
my_clu(deptno);

create

table
t1_emp(

empno
number
,

ename
varchar2
(
20
),

birth_date
date
,

deptno
number

)

cluster
my_clu(deptno);

4、为簇创建索引

create

index
clu_index
on

cluster
my_clu;

注:若不创建索引,则在插入数据时报错:ORA-02032: clustered tables cannot be used before the cluster index is built

管理簇

使用ALTER修改簇属性(必须拥有ALTER ANY CLUSTER的权限)

1、修改簇属性

可以修改的簇属性包括:

* PCTFREE、PCTUSED、INITRANS、MAXTRANS、STORAGE

* 为了存储簇键值所有行所需空间的平均值SIZE

* 默认并行度

注:

* 不能修改INITIAL和MINEXTENTS的值

* PCTFREE、PCTUSED、SIZE参数修改后适用于所有数据块

* INITRANS、MAXTRANS仅适用于以后分配的数据块

* STORAGE参数修改后仅影响以后分配给簇的盘区

格式:

alter

cluster
my_clu

pctused

40

2、删除簇

drop

cluster
my_clu;

--


仅适用于删除空簇

drop

cluster
my_clu
including

tables
;

--


删除簇和簇表

drop

cluster
my_clu
including

tables

cascade

constraints
;

--


同时删除外键约束

注:簇表可以像普通表一样删除。

散列聚簇表

在簇表中,Oracle使用存储在索引中的键值来定位表中的行,而在散列聚簇表中,使用了散列函数代替了簇索引,先通过内部函数或者自定义的函数进行散列计算,然后再将计算得到的码值用于定位表中的行。创建散列簇需要用到HASHKEYS子句。

1、创建散列簇

create

cluster
my_clu_two(empno
number(10)
)

pctused

70

pctfree

10

tablespace
users

hash

is
empno

hashkeys

150
;

说明:

* hash is 子句指明了进行散列的列,如果列是唯一的标示行,就可以将列指定为散列值

* hashkeys 指定和限制散列函数可以产生的唯一的散列值的数量

2、创建散列表

create

table
t2_emp (

empno
number
(
10
),

ename
varchar2
(
20
),

birth_date
date
,

deptno
number
)

cluster
my_clu_two(empno);

注意:

* 必须设置数值的精度(具体原因不详)

* 散列簇不能也不用创建索引

* 散列簇不能ALTER:size、hashkeys、hash is参数

Oracle表介绍--簇表的更多相关文章

  1. PLSQL_Oracle簇表和簇表管理Index clustered tables(案例)

    2012-06-08 Created By BaoXinjian

  2. oracle 索引聚簇表的工作原理

    作者:Richard-Lui 一:首先介绍一下索引聚簇表的工作原理:(先创建簇,再在簇里创建索引,创建表时指定列的簇类型) 聚簇是指:如果一组表有一些共同的列,则将这样一组表存储在相同的数据库块中:聚 ...

  3. Oracle创建聚簇表

    创建聚簇表过程: 创建簇(cluster)----创建簇表(基本类似创建一般表但有区别)----创建簇索引(index)----数据管理 创建簇: create cluster stu_ach(sid ...

  4. Oracle索引梳理系列(五)- Oracle索引种类之表簇索引(cluster index)

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  5. oracle的散列聚簇表

    在簇表中,Oracle使用存储在索引中的键值来定位表中的行, 而在散列聚簇表中,使用了散列函数代替了簇索引,先通过内部函数或者自定义的函数进行散列计算,然后再将计算得到的码值用于定位表中的行. 创建散 ...

  6. oracle聚簇表的理解 (转自:https://blog.csdn.net/gumengkai/article/details/51009345 )

    Oracle支持两种类型的聚簇:索引聚簇和哈希聚簇 一.索引聚簇表的原理 聚簇:如果一些表有一些共同的列,则将这样一组表存储在相同的数据块中 聚簇还表示把相关的数据存储在同一个块上.利用聚簇,一个块可 ...

  7. [转帖]总结ORACLE系统视图及表大全

    总结ORACLE系统视图及表大全:dba_开头.....dba_users 数据库用户信息dba_segments 表段信息dba_extents 数据区信息dba_objects 数据库对象信息db ...

  8. oracle在线重定义表

    在一个高可用系统中,如果需要改变一个表的定义是一件比较棘手的问题,尤其是对于7×24系统.Oracle提供的基本语法基本可以满足一般性修改,但是对于把普通堆表改为分区表,把索引组织表修改为堆表等操作就 ...

  9. 聚簇(Cluster)和聚簇表(Cluster Table)

    聚簇(Cluster)和聚簇表(Cluster Table) 时间:2010-03-13 23:12来源:OralanDBA.CN 作者:AlanSawyer 点击:157次 1.创建聚簇 icmad ...

随机推荐

  1. BZOJ 2878([Noi2012]-失落的游乐园树DP+出站年轮加+后市展望DP+vector的erase)

    2878: [Noi2012]迷失乐园 Time Limit: 10 Sec  Memory Limit: 512 MBSec  Special Judge Submit: 319  Solved:  ...

  2. cocos2d-x3.2中map的基本操作和使用

    在游戏开发中,我们有时候会用到map,而map的使用方法我简单给大家介绍一下.Map是c++的一个标准容器,她提供了非常好一对一的关系,在一些程序中建立一个map能够起到事半功倍的效果,总结了一些ma ...

  3. JavaScript中null和undefined的总结

    先说null,它表示一个特殊值,常用来描述“空值”.对null执行typeof运算,结果返回字符串“object”,也就是说,可以将null认为是一个特殊的对象值,含义是“非对象”(感觉怪怪的).实际 ...

  4. 模拟linux下的ls -l命令

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h&g ...

  5. RQNOJ PID2 / 开心的金明

    题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N 元钱就行”.今 ...

  6. php 开发技巧

    以下九种PHP一个非常有用的功能.我不知道你还没有使用?1. 的功能,你可能知道的参数,任意数量PHP我同意你定义一个函数默认参数. 但你可能并不知道PHP还同意你定义一个全然随意的參数的函数以下是一 ...

  7. Fireasy

    Fireasy与Asp.net MVC结合   Fireasy之前都是使用HttpService来为jquery ajax提供服务,这个HttpService实际上和MVC的原理机制是一样的,只是它支 ...

  8. linux_shell_轮询触发启动脚本

    while [ 1 ]do length=`redis-cli -h *.*.*.* -p 8000 llen eq` while [ $length -gt 1 ] do echo "le ...

  9. hibernate tools连接数据报错

    报如下的错误: An internal error occurred during: "Fetching children of Database". org.slf4j.spi. ...

  10. 使用ArcGIS API for Silverlight 进行复合多条件空间查询

    原文:使用ArcGIS API for Silverlight 进行复合多条件空间查询 这两天帮网上认识的一个兄弟做了一个查询的示例,多多少少总结一下,在此和大家分享. 为什么说是复合多条件呢?因为进 ...