聚簇(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( ...
随机推荐
- 在Fedora 20下使用TexturePacker
TexturePacker应该是最流行的图片合并工具吧,它把多个小图组合成一个大图,以减少网络请求次数,还有利于内存的充分利用.在游戏开发和网页开发时经常会用到它,CanTK(https://gith ...
- TWaver HTML5 (2D)--基本概念
基本概念 TWaver HTML5(以下简称TWaver)使用HTML5技术和javascript语言,可在支持HTML5的浏览器上进行绘图. 使用TWaver前,需熟悉几个基本概念:图元(Eleme ...
- WLAN历史概述-01
无线网络介绍 无线网络的初步应用,可以追朔到第二次世界大战期间,当时美国陆军采用无线电信号做资料的传输.他们研发出了一套无线电传输科技,并且采用相当高强度的加密技术,得到美军和盟军的广泛使用.他们也许 ...
- 读书笔记2:HTTP协议
HTTP是什么 HTTP定义 HTTP( Hypertext Transfer Protocol, 超文本传输协议) 是在万维网上进行通信时所使用 的协议方案. HTTP的地位 了解HTTP协议的地位 ...
- mvc伪静态<三> IIS配置
上一篇已经已经讲述了mvc伪静态的代码实现. 下面以IIS 7.5为例演示一下IIS如何配置才能在服务器显示.html的伪静态 一.进入IIS,选择处理程序映射 二添加脚本映射 三根据你的处理程序的版 ...
- 设置浏览器使用的dom模式为IE7
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>设置浏览器使用的dom模式为 ...
- 平衡查找树之B树
转自:http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html 定义 B 树可以看作是对2-3查找树的一种扩展,即 ...
- MVC3+EF4.1学习系列(五)----- EF查找导航属性的几种方式
文章索引和简介 通过上一篇的学习 我们把demo的各种关系终于搭建里起来 以及处理好了如何映射到数据库等问题 但是 只是搭建好了关系 问题还远没有解决 这篇就来写如何查找导航属性 和查找导航属性的几种 ...
- DBCC DBREINDEX重建索引提高SQL Server性能
大多数SQL Server表需要索引来提高数据的访问速度,如果没有索引,SQL Server 要进行表格扫描读取表中的每一个记录才能找到索要的数据.索引可以分为簇索引和非簇索引,簇索引通过重排表中的数 ...
- linux 安装 apache
1. 系统基本信息 CentOS 6.4 内存2G 硬盘 200G cpu 4核 (cat /proc/cpuinfo |grep 'processor'|wc -l 查看cpu核数 ...