1.cluster 可以將兩個(gè)或多個(gè)表捆綁在一起,,cluster是一種數(shù)據(jù)庫結(jié)構(gòu),在這個(gè)結(jié)構(gòu)中,可以將兩個(gè)或者多個(gè)表儲存在相同的數(shù)據(jù)塊或段中,加入到cluster中的每個(gè)表行將物理地存儲在相同的塊中,好像這些表在cluster key 處連接起來了一樣.通過下面的例子,你將理解cluster如何的工作.
aa 表
SQL> select * from aa;
ID NAME SE AGE
---- ---- -- ----------
01 cc m 20
02 dd f 18
03 ee m 22
04 ff f 21
05 gg f 19
06 hh m 20
已選擇6行。
bb表
SQL> select * from bb;
SE LIVING
-- ------
m 11-01
f 11-02
2.在使用aa,bb表的時(shí)候,如果想要將這兩個(gè)表放到一個(gè)cluster中,則可以將這兩個(gè)
表在sex列上連接起來,在這種情況下,吧sex列稱為cluster key ,當(dāng)完成cluster的
創(chuàng)建后,兩個(gè)表中的數(shù)據(jù)將會在cluster中物理地連接起來.在創(chuàng)建cluster的時(shí)候有兩種選擇:
* index cluster(默認(rèn),需要在其中創(chuàng)建cluster index)
* hash cluster
3.創(chuàng)建cluster的步驟:
1). SQL> create cluster ab_cluster (sex char(2) ) tablespace users;
簇已創(chuàng)建。
上面的語句創(chuàng)建了一個(gè)名為ab_cluster的cluster,且將它置于表空間usrs中.因?yàn)樯厦鎰?chuàng)建的是index cluster ,所以當(dāng)cluster創(chuàng)建完后,還必須在cluster key 上創(chuàng)建索引.
2). SQL> create index ab_cluster_idx on cluster ab_cluster tablespace users;
索引已創(chuàng)建。
{ 當(dāng)創(chuàng)建hash cluster的時(shí)候,例子如下:
Create cluster ab_cluster (sex char(2) size 8k hashkeys 1000 tablespace users;
參數(shù)hashkeys用來定義分配給表的hash]值的數(shù)目.指出了在cluster中唯一性cluster key的最大值.}
3).創(chuàng)建參與cluster的表.(aa bb)
SQL> create table aa(id varchar2(4) ,name varchar2(4),sex char(2),age number(2))
cluster ab_cluster (sex);
表已創(chuàng)建.
SQL> create table bb( sex char(2) , living varchar(6)) cluster ab_cluster (sex);
表已創(chuàng)建。
4.刪除cluster.
在刪除cluster的時(shí)候,首先必須刪除參與該cluster的表或者使用including tables子句.不能從正在使用的cluster刪除表.
SQL> drop cluster ab_cluster including tables cascade constraints;
簇已刪除。