聚簇(Cluster)和聚簇表(Cluster Table) 
时间:2010-03-13 23:12来源:OralanDBA.CN 作者:AlanSawyer 点击:157次 
1.创建聚簇 
icmadmin@icmnlsdb> create cluster cluster_test(id int);

Cluster created.

2.创建聚簇表 
icmadmin@icmnlsdb> create table tab_cluster1(id int primary key, name1 varchar2(30)) cluster cluster_test(id);

Table created.

icmadmin@icmnlsdb> create table tab_cluster2(id int primary key, name2 varchar2(30)) cluster cluster_test(id);

Table created.

3.创建聚簇索引 
icmadmin@icmnlsdb> create index idx_cluster_test on cluster cluster_test;

Index created.

4.查看聚簇表所属的聚簇 
icmadmin@icmnlsdb> select owner,table_name,cluster_name from dba_tables where wner='icmadmin' and table_name in ('TAB_CLUSTER1','TAB_CLUSTER2');

OWNER          TABLE_NAME          CLUSTER_NAME 
-------------- ------------------- --------------- 
icmadmin            TAB_CLUSTER2        CLUSTER_TEST 
icmadmin            TAB_CLUSTER1        CLUSTER_TEST

5.初始化几行聚簇表的数据 
icmadmin@icmnlsdb> insert into TAB_CLUSTER1 values (1,'AAA'); 
icmadmin@icmnlsdb> insert into TAB_CLUSTER1 values (2,'BBB'); 
icmadmin@icmnlsdb> insert into TAB_CLUSTER1 values (3,'CCC'); 
icmadmin@icmnlsdb> insert into TAB_CLUSTER2 values (1,'AA1'); 
icmadmin@icmnlsdb> insert into TAB_CLUSTER2 values (2,'BB2'); 
icmadmin@icmnlsdb> insert into TAB_CLUSTER2 values (3,'CC3'); 
icmadmin@icmnlsdb> commit;

6.模拟truncate表TAB_CLUSTER1,可以看到报错了,聚簇中的表不允许truncate,原因很简单,聚簇在一个块上存储了多个表,必须删除聚簇表中的行来实现删除 
icmadmin@icmnlsdb> truncate table TAB_CLUSTER1; 
truncate table TAB_CLUSTER1 
               * 
ERROR at line 1: 
ORA-03292: Table to be truncated is part of a cluster

icmadmin@icmnlsdb> truncate table TAB_CLUSTER2; 
truncate table TAB_CLUSTER2 
               * 
ERROR at line 1: 
ORA-03292: Table to be truncated is part of a cluster

7.清除聚簇表第一种方法:delete方式删除

8.清除聚簇表第二种方法:通过truncate cluster的方式清除cluster中表数据 
icmadmin@icmnlsdb> truncate cluster CLUSTER_TEST;

Cluster truncated.

icmadmin@icmnlsdb> select * from TAB_CLUSTER1;

no rows selected

icmadmin@icmnlsdb> select * from TAB_CLUSTER2;

no rows selected

9.删除聚簇 
icmadmin@icmnlsdb> drop cluster cluster_test including tables;

Cluster dropped.

聚簇(Cluster)和聚簇表(Clustered Table)的优点:

1.表中的数据一起存储在簇中,连接这些表的查询就可能执行更少的I/O,改善系统性能 
2.对于经常一同查询的表可以明显的加速表的连接(Join) 
3.非常适合查询频繁的环境

聚簇(Cluster)和聚簇表(Clustered Table)的缺点:

1.因为是一类比较特殊的对象,所以增加了数据库的管理负担 
2.非常不适合更改频繁的环境 
3.如果聚簇表总是在一起查询,考虑是否可以将他们合并为一个表

聚簇(Cluster)和聚簇表(Clustered Table)的特点:

1.聚簇由多个表组成 
2.几个表共享相同的数据块 
3.一个聚簇有一个或者多个公共的列,多个表共享这些列,这样的列叫做:聚簇关键字或簇键(Cluster Key) 
4.Oracle把多个表的数据物理地存储在一起

聚簇表中插入数据之前,聚簇上需先有聚簇索引。否则会出现如下的错误: 
icmadmin@icmnlsdb> select * from tab_cluster1; 
select * from tab_cluster1 
              * 
ERROR at line 1: 
ORA-02032: clustered tables cannot be used before the cluster index is built

聚簇(Cluster)和聚簇表(Cluster Table)的更多相关文章

  1. Chapter 18 MySQL NDB Cluster 7.3 and NDB Cluster 7.4渣翻

    Table of Contents 18.1 NDB Cluster Overview      18.2 NDB Cluster Installation      18.3 Configurati ...

  2. mysql 命令重命名表RENAME TABLE 句法

    mysql 命令重命名表RENAME TABLE 句法 RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2,...]更 ...

  3. Openvswitch原理与代码分析(5): 内核中的流表flow table操作

      当一个数据包到达网卡的时候,首先要经过内核Openvswitch.ko,流表Flow Table在内核中有一份,通过key查找内核中的flow table,即可以得到action,然后执行acti ...

  4. Lua中的weak表——weak table

    弱表(weak table)是一个很有意思的东西,像C++/Java等语言是没有的.弱表的定义是:A weak table is a table whose elements are weak ref ...

  5. ABAP内表(internal table)有关的系统变量

    SY-TABIX – 内表当前行的索引号.SY-TABIX 的值可以被以下命令修改,但是只适用于索引表(index table).对于哈希表(Hashed table),这个系统变量的值为空或0. A ...

  6. Lua中的weak表——weak table(转)

    弱表(weak table)是一个很有意思的东西,像C++/Java等语言是没有的.弱表的定义是:A weak table is a table whose elements are weak ref ...

  7. Oracle使用Sql把XML解析成表(Table)的方法

    SELECT * FROM XMLTABLE('$B/DEAL_BASIC/USER_DEAL_INFO' PASSING XMLTYPE('<?xml version="1.0&qu ...

  8. 表(Table)

    虽然我们已经将不同用途的物品保存在不同的仓库中了,但是在同一个仓库中数据的保存仍然存在问题.比如食品分为熟食.生肉.大米等,如果把他们随意的堆放在一起,就会造成我们无法很容易的对这些食品进行管理,当要 ...

  9. Lua表(table)的用法_个人总结

    Lua表(table)的用法_个人总结 1.表的创建及表的介绍 --table 是lua的一种数据结构用来帮助我们创建不同的数据类型.如:数组和字典--lua table 使用关联型数组,你可以用任意 ...

  10. 算法与数据结构基础 - 哈希表(Hash Table)

    Hash Table基础 哈希表(Hash Table)是常用的数据结构,其运用哈希函数(hash function)实现映射,内部使用开放定址.拉链法等方式解决哈希冲突,使得读写时间复杂度平均为O( ...

随机推荐

  1. canvas调节视频颜色

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 如何让div中的内容垂直居中

    虽然Div布局已经基本上取代了表格布局,但表格布局和Div布局仍然各有千秋,互有长处.比如表格布局中的垂直居中就是Div布局的一大弱项,不过好在千变万化的CSS可以灵活运用,可以制作出准垂直居中效果, ...

  3. isDebugEnabled作用

       早上写了日志级别,然后想起在使用的时候经常用isDebugEnabled,一鼓作气.彻底弄懂它: 现象 if (logger.isDebugEnabled()) { logger.debug(m ...

  4. HDUOJ----2485 Destroying the bus stations(2008北京现场赛A题)

    Destroying the bus stations                                                                          ...

  5. android:configChanges属性

    对android:configChanges属性,一般认为有以下几点: 1.不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏 ...

  6. hdu5884 Sort(二分+k叉哈夫曼树)

    题目链接:hdu5884 Sort 题意:n个有序序列的归并排序.每次可以选择不超过k个序列进行合并,合并代价为这些序列的长度和.总的合并代价不能超过T, 问k最小是多少. 题解:先二分k,然后在k给 ...

  7. [转]Visual Studio 2010 单元测试目录

    Visual Studio 2010 单元测试共分七个部分: 普通单元测试.顺序单元测试.压力测试,Generic测试.数据库测试.UI界面测试和Web性能测试. 这个系列的博客实例程序可以在下面的链 ...

  8. jQuery的bind()与live()

    前言 最近一个项目的前端有这样的一个需求:页面中有某按钮,点击按钮之后通过服务器的返回信息更改这个按钮的点击事件执行函数. 方案1 之前小猪使用的方法是给按钮增加class.在jquery中通过cla ...

  9. ubuntu14.10服务器版安装xampp,配置域名端口访问

    1.从xampp下载下了xampp-linux-1.7.3a.tar这个包,然后ftp到我的linux虚拟机中, 2.复制到opt下,(可以直接解压的)到opt下面,tar xvfz xampp-li ...

  10. 青蛙的烦恼(dp好题)

    有n片荷叶正好在一凸多边形顶点上 有一只小青蛙恰好站在1号荷叶的点 小青蛙可以从一片荷叶上跳到另外任意一片荷叶上 给出N个点的坐标N<800 求小青蛙想通过最短的路程遍历所有的荷叶一次且仅一次的 ...