oracle簇cluster

jss001發表於2009-02-09

1 簇概念:

是一組表,如果應用程式中的SQL 語句經常聯結兩個或多個表,可以把這些表以簇方式進行建立以改善效能。簇中的表儲存在相同的資料塊中,並且各個表中的相同的列值只儲存一個。

簇(Cluster)就是將一組有機聯絡的表在物理上存放在一起並且相同的關鍵列的值只儲存一份,用於提高處理效率的一項技術

2 限制:

l 簇中的每個表必須有一列與簇中指定的列的 大小和型別匹配;

l 簇碼中可用列的最大數目是16,即一個簇最多有16列作為簇碼;

l 列的最大長度為239位元組;

l LONG LONG RAW 不能作為簇列碼。

3 3 建立簇:

1) 建立簇語法

CREATE CLUSTER cluster

( column datatype[,colmn datatype])

[PCTUSED 40|intger] [ PCTFREE 10| intger]

[ SIZE intger ]

[INITRANS 1|intger] [MAXTRANS 255|intger]

[TABLESPACE tablespace]

[STORAGE storage]

2)建立簇及其表的步驟:

l CREATE CLUSTER建立簇

l CREATE INDEX建立簇索引

l CREATE TABLE 建立表,並指定簇

l 插入資料並進行DML 操作

4 改變簇:

在使用者具有 ALTER ANY CLUSTER 的許可權情況下,可以對已建好的簇(CLUSTER )改變其設定,如:

l 物理屬性:PCTFREE,PCTUSED,INITRANS,MAXTRANSSTORAGE;

l CLUSTER 關鍵字值儲存所有行所需的一般空間容量;

l 預設平行度。

命令語法:

ALTER CLUSTER Cluster_name

{ PCTUSED integer

| PCTFREE integer

| SIZE integer

| INITRANS integer

| MAXTRANS integer

| STORAGE Cluase

}

5 刪除簇:

只要使用者具有 DROP ANY CLUSTER許可權均可以對所有的CLUSTER進行刪除。

語法如下:

DROP CLUSTER [user.]cluster [INCLUDING TABLES]

6 收集簇資訊:

刪除簇索引:一個簇的索引可以被刪除而不影響表的資料,但是當簇的索引被刪除後,屬於該簇的表就變為不可用,所以當刪除簇的索引後還須再建立該簇的索引才行。有時為了消除盤空間的碎片我們常進行刪除簇索引操作。

l DBA_CLU_COLUMNS USER_CLU_COLUMNS

l DBA_CLUSTERSUSER_CLUSTER

[@more@]

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

相關文章