聚簇(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是存储一组table的一种方法,这些table共享同一数据块中的某些相同column,并把不同table在这一共享column上值相同的data row存储到同一block上。在sql server中的cluster index强制行根据index key按存储...
### 关于Cluster Table (簇表) BSEG 的详细介绍 #### Cluster Table 概念与特性 在SAP系统中,Cluster Table(簇表)是一种特殊的数据组织形式,它主要用于存储那些频繁进行更新操作的小型记录。簇表的主要特点是...
在Oracle数据库中,聚簇表(Cluster Table)是一种特殊的数据存储结构,它允许多个表通过共享某些相同的列值来存储在同一个数据块内。这种特性使得相关联的数据能够在物理上更紧密地存储在一起,从而提高查询效率...
- 创建数据簇目录表。 - 使用SQL语句在簇数据库中存储数据对象。 - 从簇数据库中读取数据对象。 - 删除簇数据库中的数据簇。 - 使用开放式SQL语句访问簇数据库。 #### 示例代码 为了进一步理解如何在数据库中使用...
- 簇表(Cluster Table):存储多种不同类型的数据,用于存储非结构化数据。 - 视图(View):基于一个或多个表的逻辑组合,可以是选择视图、联接视图、计算视图或自定义视图。 - 描述表(Descriptor Table):...
有聚簇索引(CLUSTER)和非聚簇索引(非CLUSTER)。聚簇索引决定了数据在物理存储上的顺序,而非聚簇索引则不直接影响物理顺序。每个表只能有一个聚簇索引,但可以有多个非聚簇索引。索引可以通过`CREATE INDEX`语句...
在 SAP 的财务信息系统(Financial Accounting, 简称 FI)中,簇表(Cluster Table)是一种非常重要的数据存储结构,它主要用于存储大量的会计凭证数据,通过将相关的记录组织在一起,提高了数据处理效率。本教程将...
- **簇**:在FAT(File Allocation Table)或NTFS这样的文件系统中,簇是磁盘分配的最小单位,比块大,且通常是块的整数倍。一个簇可能包含一个或多个块。 2. **extent_map**: - **Extent Map**:在文件系统中,...
在NTFS中,文件的物理位置是通过一种叫做MFT(Master File Table)的元数据结构来记录的,其中包含了文件分配表(FAT)类似的信息。每个MFT条目都有一个或多个属性,其中一个属性是$DATA,它存储了文件的实际内容。$...
1.1.2 聚簇因子(cluster factor)10 1.1.3 影响读取的因素13 1.1.3.1 大范围数据读取的处理方案14 1.1.3.2 提高聚簇因子的手段17 1.2 索引组织表(index-organized table)19 1.2.1 堆表和索引组织表的比较19 1.2.2 ...
1.1.2 聚簇因子(cluster factor)10 1.1.3 影响读取的因素13 1.1.3.1 大范围数据读取的处理方案14 1.1.3.2 提高聚簇因子的手段17 1.2 索引组织表(index-organized table)19 1.2.1 堆表和索引组织表的比较19 1.2.2 ...
-- 删除簇和簇表 drop cluster my_clu including tables cascade constraints;-- 同时删除外键约束 ``` 清空簇数据: ```sql truncate cluster my_clu; ``` 除了常规的簇,还有一种散列聚簇表,它使用散列函数而非...
备份内容包括Metadata、Table records 和 Transaction log。恢复命令为 ndb_restore。 MySQL NDB Cluster 是一种高可用、高性能的数据库集群解决方案,旨在提供高可用性、可扩展性和高性能的数据库服务。
排序哈希簇是Oracle提供的一种数据组织方式,它结合了哈希簇和排序的优点,能够显著提高某些类型查询的速度。哈希簇是一种特殊的数据存储结构,通过哈希函数来定位数据块的位置,而排序哈希簇则在此基础上增加了排序...
LabVIEW提供了多种用于处理表格数据的函数,如“Table to Cluster”和“Cluster to Table”,这些函数可以帮助用户在数据库操作与LabVIEW的数据结构之间进行转换。此外,"Table Control"是LabVIEW的一种UI元素,...
1. 数据存储方法:数据可以以多种方式存储,包括常规表(Heap Table)、索引组织表(Index-Organized Table)、聚簇表(Cluster)和分区表(Partitioned Table)。常规表是最常见的数据存储方式,数据按随机顺序存储...
1. 数据库和表操作:包括创建、修改和删除数据库以及表的命令,如CREATE DATABASE、ALTER TABLE和DROP DATABASE等。同时,手册会涵盖数据类型、索引、约束等概念。 2. 数据查询:利用SELECT语句进行数据查询是SQL的...
通过查询特定的系统表,数据库管理员(DBA)或开发人员能够获取关于用户、表空间、数据库对象、表、索引、序列、视图、聚簇以及快照的详细信息,从而进行有效的数据库管理和优化工作。以下是对给定文件中的Oracle...