【實驗】【聚簇】聚簇(Cluster)和聚簇表(Cluster Table)的建立與總結

secooler發表於2009-07-30
【實驗優先】演示標準建立和刪除過程
1.建立聚簇
sec@ora10g> create cluster cluster_test(id int);

Cluster created.

2.建立聚簇表
sec@ora10g> create table tab_cluster1(id int primary key, name1 varchar2(30)) cluster cluster_test(id);

Table created.

sec@ora10g> create table tab_cluster2(id int primary key, name2 varchar2(30)) cluster cluster_test(id);

Table created.

3.建立聚簇索引
sec@ora10g> create index idx_cluster_test on cluster cluster_test;

Index created.

4.刪除聚簇
sec@ora10g> drop cluster cluster_test including tables;

Cluster dropped.

5.檢視聚簇表所屬的聚簇
sec@ora10g> select owner,table_name,cluster_name from dba_tables where wner='SEC' and table_name in ('TAB_CLUSTER1','TAB_CLUSTER2');

OWNER          TABLE_NAME          CLUSTER_NAME
-------------- ------------------- ---------------
SEC            TAB_CLUSTER2        CLUSTER_TEST
SEC            TAB_CLUSTER1        CLUSTER_TEST

【總結ing】
聚簇(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把多個表的資料物理地儲存在一起

【BTW】
聚簇表中插入資料之前,聚簇上需先有聚簇索引。否則會出現如下的錯誤:
sec@ora10g> 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

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-610869/,如需轉載,請註明出處,否則將追究法律責任。

相關文章