聚簇(Cluster)和聚簇表(Cluster Table)
聚簇(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)的更多相关文章
- 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 ...
- mysql 命令重命名表RENAME TABLE 句法
mysql 命令重命名表RENAME TABLE 句法 RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2,...]更 ...
- Openvswitch原理与代码分析(5): 内核中的流表flow table操作
当一个数据包到达网卡的时候,首先要经过内核Openvswitch.ko,流表Flow Table在内核中有一份,通过key查找内核中的flow table,即可以得到action,然后执行acti ...
- Lua中的weak表——weak table
弱表(weak table)是一个很有意思的东西,像C++/Java等语言是没有的.弱表的定义是:A weak table is a table whose elements are weak ref ...
- ABAP内表(internal table)有关的系统变量
SY-TABIX – 内表当前行的索引号.SY-TABIX 的值可以被以下命令修改,但是只适用于索引表(index table).对于哈希表(Hashed table),这个系统变量的值为空或0. A ...
- Lua中的weak表——weak table(转)
弱表(weak table)是一个很有意思的东西,像C++/Java等语言是没有的.弱表的定义是:A weak table is a table whose elements are weak ref ...
- Oracle使用Sql把XML解析成表(Table)的方法
SELECT * FROM XMLTABLE('$B/DEAL_BASIC/USER_DEAL_INFO' PASSING XMLTYPE('<?xml version="1.0&qu ...
- 表(Table)
虽然我们已经将不同用途的物品保存在不同的仓库中了,但是在同一个仓库中数据的保存仍然存在问题.比如食品分为熟食.生肉.大米等,如果把他们随意的堆放在一起,就会造成我们无法很容易的对这些食品进行管理,当要 ...
- Lua表(table)的用法_个人总结
Lua表(table)的用法_个人总结 1.表的创建及表的介绍 --table 是lua的一种数据结构用来帮助我们创建不同的数据类型.如:数组和字典--lua table 使用关联型数组,你可以用任意 ...
- 算法与数据结构基础 - 哈希表(Hash Table)
Hash Table基础 哈希表(Hash Table)是常用的数据结构,其运用哈希函数(hash function)实现映射,内部使用开放定址.拉链法等方式解决哈希冲突,使得读写时间复杂度平均为O( ...
随机推荐
- java 集合(Vector)不做重点
Vector: 底层也是维护了一个Object数组,实现与ArrayList是一样的, 但其线程是安全的,效率低.除了比较老的系统,是不会用到的. 笔试题:ArrayList 和 Vector 的区别 ...
- 能源项目xml文件 -- app-context.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- DI 之 3.3 更多DI的知识(柒)
3.3.3 自动装配 3.3.4 依赖检查 3.3.5 方法注入
- C#读写EXCEL
using System; using System.Collections; using System.Configuration; using System.Data; using System. ...
- Ubuntu 修复windows启动项
打开终端输入命令sudo gedit /etc/default/grub修改GRUB_TIMEOUT="10"然后在终端中输入sudo update-grubupdate 命令会自 ...
- python常用代码
#coding=utf-8 import urllib import re def getHtml(url): page = urllib.urlopen(url) html = page.read( ...
- js中String.prototype.format類似于.net中的string.formitz效果
String.prototype.format = function(args) { if (arguments.length>0) { var result = this; if (argum ...
- hdu---(3555)Bomb(数位dp(入门))
Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submi ...
- 集成 Apple Pay
作者感言 在中秋过后终于把国内的三大支付平台SDK集成都搞定了, 现在我们终于可以来研究Apple自家的支付Apple Pay最后:如果你有更好的建议或者对这篇文章有不满的地方, 请联系我, 我会参考 ...
- Java 集合系列 01 总体框架
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...