聚簇(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( ...
随机推荐
- MySQL锁监视器
还在为看不懂何登成的加锁处理分析文章感到羞愧吗? 还在因为何大师的笔误,陷入深深的迷茫吗? 只要你拥有大于5.6.16版本的MySQL,锁监视器你值得拥有! 快速入门 开启 set GLOBAL in ...
- 实现 像网易云音乐 播放列表那样的弹出型Dialog
如图 所示是点击Test之后的 弹出的Dialog (请无视我工程的命名) 20161017/**加入点击回调,假设dialog里放了一个TextView*/ 得先写一个点击回调 public int ...
- [saiku] 源码整合[普通WEB项目]
saiku源码的整合分为[普通web项目整合]和[maven整合]两种 本节主要是讲解如何整合为普通的web项目 转载自:http://blog.csdn.net/gsying1474/article ...
- Scrum 项目5.0
1.团队成员完成自己认领的任务. 2.燃尽图:理解.设计并画出本次Sprint的燃尽图的理想线.参考图6. 3.每日立会更新任务板上任务完成情况.燃尽图的实际线,分析项目进度是否在正轨. 每天的 ...
- http协议分析工具【转】
转自:http://www.cnblogs.com/klguang/p/4624333.html
- HDUOJ----2571(命运)(简单动态规划)
命运 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- Swift和Objective-C混编注意
前言 Swift已推出数年,与Objective-C相比Swift的语言机制及使用简易程度上更接地气,大大降低了iOS入门门槛.当然这对新入行的童鞋们来讲,的确算是福音,但对于整个iOS编程从业者来讲 ...
- 注解配置springMvc及向作用域中赋值
1.在applicationContext.xml中配置包扫描器 <!-- 使用注解配置扫描器 --> <context:component-scan base-package=&q ...
- PHP生成word的三种方式
摘要: 最近工作遇到关于生成word的问题 现在总结一下生成word的三种方法. btw:好像在博客园发表博客只要是标题带PHP的貌似点击量都不是很高(哥哥我标题还是带上PHP了),不知道为什么,估计 ...
- Java script基础
Java script基础 Js的每个语句后面都要有分号. <script type="text/java script">所有JS内容</script> ...