`
foolraty
  • 浏览: 400305 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
文章分类
社区版块
存档分类
最新评论

聚簇(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
分享到:
评论

相关推荐

    Oracle中聚簇表Cluster Table使用图文详解

    Cluster是存储一组table的一种方法,这些table共享同一数据块中的某些相同column,并把不同table在这一共享column上值相同的data row存储到同一block上。在sql server中的cluster index强制行根据index key按存储...

    关于cluster table(簇表)BSEG

    ### 关于Cluster Table (簇表) BSEG 的详细介绍 #### Cluster Table 概念与特性 在SAP系统中,Cluster Table(簇表)是一种特殊的数据组织形式,它主要用于存储那些频繁进行更新操作的小型记录。簇表的主要特点是...

    Oracle中聚簇表的使用

    在Oracle数据库中,聚簇表(Cluster Table)是一种特殊的数据存储结构,它允许多个表通过共享某些相同的列值来存储在同一个数据块内。这种特性使得相关联的数据能够在物理上更紧密地存储在一起,从而提高查询效率...

    Abap基础学习文档12_以簇方式存 储数据对象.doc

    - 创建数据簇目录表。 - 使用SQL语句在簇数据库中存储数据对象。 - 从簇数据库中读取数据对象。 - 删除簇数据库中的数据簇。 - 使用开放式SQL语句访问簇数据库。 #### 示例代码 为了进一步理解如何在数据库中使用...

    abap table

    - 簇表(Cluster Table):存储多种不同类型的数据,用于存储非结构化数据。 - 视图(View):基于一个或多个表的逻辑组合,可以是选择视图、联接视图、计算视图或自定义视图。 - 描述表(Descriptor Table):...

    2020数据库原理与应用41

    有聚簇索引(CLUSTER)和非聚簇索引(非CLUSTER)。聚簇索引决定了数据在物理存储上的顺序,而非聚簇索引则不直接影响物理顺序。每个表只能有一个聚簇索引,但可以有多个非聚簇索引。索引可以通过`CREATE INDEX`语句...

    傻瓜教程:FI 的簇表的使用

    在 SAP 的财务信息系统(Financial Accounting, 简称 FI)中,簇表(Cluster Table)是一种非常重要的数据存储结构,它主要用于存储大量的会计凭证数据,通过将相关的记录组织在一起,提高了数据处理效率。本教程将...

    extent_map.rar_cluster

    - **簇**:在FAT(File Allocation Table)或NTFS这样的文件系统中,簇是磁盘分配的最小单位,比块大,且通常是块的整数倍。一个簇可能包含一个或多个块。 2. **extent_map**: - **Extent Map**:在文件系统中,...

    NTFS中有多个运行的簇号计算

    在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 ...

    海量数据库解决方案_韩国_李华植_Part02

    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 ...

    Oracle 簇的使用详解

    -- 删除簇和簇表 drop cluster my_clu including tables cascade constraints;-- 同时删除外键约束 ``` 清空簇数据: ```sql truncate cluster my_clu; ``` 除了常规的簇,还有一种散列聚簇表,它使用散列函数而非...

    MySQL NDB Cluster实践.pdf

    备份内容包括Metadata、Table records 和 Transaction log。恢复命令为 ndb_restore。 MySQL NDB Cluster 是一种高可用、高性能的数据库集群解决方案,旨在提供高可用性、可扩展性和高性能的数据库服务。

    用排序哈希簇来提升查询速度

    排序哈希簇是Oracle提供的一种数据组织方式,它结合了哈希簇和排序的优点,能够显著提高某些类型查询的速度。哈希簇是一种特殊的数据存储结构,通过哈希函数来定位数据块的位置,而排序哈希簇则在此基础上增加了排序...

    Example---Fetch-a-Table.zip_LabVIEW 数据库_Table_labview数据库

    LabVIEW提供了多种用于处理表格数据的函数,如“Table to Cluster”和“Cluster to Table”,这些函数可以帮助用户在数据库操作与LabVIEW的数据结构之间进行转换。此外,"Table Control"是LabVIEW的一种UI元素,...

    专题资料(2021-2022年)SMSE10管理表对象.ppt

    1. 数据存储方法:数据可以以多种方式存储,包括常规表(Heap Table)、索引组织表(Index-Organized Table)、聚簇表(Cluster)和分区表(Partitioned Table)。常规表是最常见的数据存储方式,数据按随机顺序存储...

    GBase 8a MPP Cluster SQL参考手册

    1. 数据库和表操作:包括创建、修改和删除数据库以及表的命令,如CREATE DATABASE、ALTER TABLE和DROP DATABASE等。同时,手册会涵盖数据类型、索引、约束等概念。 2. 数据查询:利用SELECT语句进行数据查询是SQL的...

    oracle系统表查询

    通过查询特定的系统表,数据库管理员(DBA)或开发人员能够获取关于用户、表空间、数据库对象、表、索引、序列、视图、聚簇以及快照的详细信息,从而进行有效的数据库管理和优化工作。以下是对给定文件中的Oracle...

Global site tag (gtag.js) - Google Analytics