Oracle聚簇表使用指南

2021-05-24 11:28:40 字數 1210 閱讀 1977

oracle

支援兩種型別的聚簇:索引聚簇和雜湊聚簇

使用索引聚簇指南 l

考慮對經常在連線語句中訪問的表建立聚簇。 l

如果表只是偶爾被連線或者它們的公共列經常被修改,則不要聚簇表。(修改記錄的聚簇鍵值比在非聚簇的表中修改此值要花費更多的時間,因為

oracle

必須將修改的記錄移植到其他的塊中以維護聚簇)。 l

如果經常需要在乙個表上進行完全搜尋,則不要聚簇這個表(對乙個聚簇表進行完全搜尋比在非聚簇表上進行完全搜尋的時間長,

oracle

可能要讀更多的塊,因為表是被一起儲存的。) l

如果經常從乙個父表和相應的子表中查詢記錄,則考慮給

1 對多(

1:* )關係建立聚簇表。(子表記錄儲存在與父表記錄相同的資料塊中,因此當檢索它們時可以同時在記憶體中,因此需要

oracle

完成較少的

i/o )。 l

如果經常查詢同乙個父表中的多個子記錄,則考慮單獨將子表聚簇。(這樣提高了從相同的父表查詢子表記錄的效能,而且也沒有降低對父表進行完全搜尋的效能)。 l

如果從所有有相同聚簇鍵值的表查詢的資料超過乙個或兩個

oracle

塊,則不要聚簇表。(要訪問在乙個聚簇表中的記錄,

oracle

讀取所有包含那個記錄值的全部資料塊,如果記錄佔據了多個資料塊,則訪問乙個記錄需要讀的次數比乙個非聚簇的表中訪問相同的記錄讀的次數要多)。

使用雜湊聚簇指南 l

當經常使用有相同列的包含相等條件的查詢子句訪問表時,考慮使用雜湊聚簇來儲存表。使用這些列作為聚簇鍵。 l

如果可以確定存放具有給定聚簇鍵值的所有記錄所需的空間(包括現在的和將來的),則將此表以雜湊聚簇儲存。 l

如果空間不夠,並且不能為將要插入的新記錄分配額外的空間,那麼不要使用雜湊聚簇。 l

如果偶爾建立乙個新的、很大的雜湊聚簇來儲存這樣的表是不切實際的,那麼不要用雜湊聚簇儲存經常增長的表。 l

如果經常需要進行全表搜尋,並且必須要為表的預期增長中的雜湊聚簇分配足夠的空間,則不要將此表以雜湊聚簇儲存。(這樣的完全檢索必須要讀分配給雜湊聚簇的全部塊,即使有些塊可能只包含很少的記錄。單獨地儲存表將減少由完全的表檢索讀取的塊的數量。) l

如果你的應用程式經常修改聚簇鍵的值,則不要將表以雜湊聚簇方式儲存。 l

不管這個表是否經常與其他表連線,只要進行雜湊對於基於以前的指南的表是合適的,那麼在雜湊聚簇中儲存乙個表可能是有用的。

Oracle建立聚簇表

建立聚簇表過程 建立簇 cluster 建立簇表 基本類似建立一般表但有區別 建立簇索引 index 資料管理 建立簇 create cluster stu ach sid number pctused 40 當資料少於40 可以被insert,一般預設值為40 pcfree 10 為乙個塊保留空間...

oracle聚簇索引

很多初學者,在接觸oracle資料庫後,都會很疑惑oracle聚簇索引是什麼,如何使用oracle聚簇索引,oracle雜湊聚簇又與oracle聚簇索引有什麼關係。本文針對這3個問題結合相關資料,給出了點看法。1.什麼是聚簇 聚簇是根據碼值找到資料的物理儲存位置,從而達到快速檢索資料的目的。orac...

mysql 聚簇索引表 Mysql的聚簇索引

聚簇索引並不是一種單獨的索引型別,而是一種資料儲存方式。innodb的聚簇索引實際上是在同乙個結構中儲存了b tree索引和資料行。乙個表只能有乙個聚簇索引。innodb中,葉子頁包含了行的全部資料,但是節點頁只包含了索引列。innodb通過主鍵聚集資料。優點 1.可以把相關資料儲存在一起。例如實現...