《Oracle程式設計藝術》學習筆記 22 表型別

2021-08-26 07:52:21 字數 1655 閱讀 9025

oracle中主要有9種表型別:

1)堆組織表(heap organized table)

這就是標準資料庫表。資料以堆的方式管理。增加資料時,會使用段中找到的第乙個能放下此資料的自由空間。從表中刪除資料後,允許以後的insert和update重用這部分空間。堆(heap)是一組空間,以一種隨機的方式使 用。

2)索引組織表(index organized table)

表按索引結構儲存。這就強制要求行本身有某種物理順序。在堆組織表中,資料可以放在任何位置;而在iot中,資料要根據主鍵有序地儲存。

3)索引聚簇表(index clustered table)

聚簇(cluster)是指乙個或多個表組成的組,這些表物理地儲存在相同的資料庫塊上,有相同聚簇鍵值的所有行會相鄰地物理儲存。

首先,多個表可以物理地儲存在一起。一般而言,你可以認為乙個資料庫塊上儲存乙個表的資料,但是對於聚簇表,可能把多個表的資料儲存在同乙個塊上。

其次,包含相同聚簇鍵值(如deptno=10)的所有資料會物理地儲存在一起。這些資料按聚簇鍵值「聚簇」在一起。聚簇鍵使用b*樹索引建立。

4)雜湊聚簇表(hash clustered table)

類似於索引聚簇表,但是不使用b*樹索引聚簇鍵來定位資料,而是通過雜湊聚簇鍵將資料雜湊到資料庫塊上。在雜湊聚簇中,資料就是索引(這是隱喻的說法)。如果需要頻繁地通過鍵的相等性比較來讀取資料,散

列聚簇表就很適用。

5)有序雜湊聚簇表(sorted hash clustered table)

oracle 10g中新增,它具有雜湊聚簇表的特性,同時兼有iot的一些特性。

行按某個鍵值(如customer_id)雜湊,而與該鍵相關的一系列記錄按照插入順序儲存。(因此這些記錄可能是是基於時間戳的記錄)。

例如,訂單輸入系統中,訂單會按先進先出(fifo)的方式獲取和處理。在這樣乙個系統中,有序雜湊聚簇就是適用的資料結構。

6)巢狀表(nested table)

巢狀表是oracle物件關係擴充套件的一部分。它們實際上就是系統生成和維護的父/子關係中的子表。

7)臨時表(temporary table)

臨時表要根據需要從當前使用者的臨時表空間分配臨時區段。每個會話只能看到這個會話分配的區段;它從不會看到其他任何會話中建立的任何資料。

8)物件表(object table)

物件表基於某種物件型別建立。它們擁有非物件表所沒有的特殊屬性,如系統會為物件表的每一行生成ref(物件識別符號)。

物件表實際上是堆組織表、索引組織表和臨時表的特例,還可以包含巢狀表作為其結構的一部分。

9)外部表(external table)

這些表並不儲存在資料庫本身中,而是放在資料庫之外,即放在平常的作業系統檔案中。

利用外部表可以查詢資料庫之外的乙個檔案,就好像這個檔案也是資料庫中平常的表一樣。外部表對於向資料庫載入資料最有用(外部表是非常強大的資料載入工具)。

oracle 10g更進一步,還引入了乙個外部表解除安裝功能,在不使用資料庫鏈結的情況下,這為在oracle資料庫之間移動資料提供了一種簡單的方法。

《Oracle程式設計藝術》學習筆記 23 段

段就是占用儲存空間的資料庫物件,占用儲存空間的每乙個物件最後都會儲存在乙個段中,如表 索引 回滾段等。段的型別 1 表段 2 表分割槽段 table partition 或子分割槽段 subpartition 這種段型別用於分割槽,與表段很相似。分割槽表由乙個或多個分割槽段 table partit...

《Oracle程式設計藝術》學習筆記 23 段

段就是占用儲存空間的資料庫物件,占用儲存空間的每乙個物件最後都會儲存在乙個段中,如表 索引 回滾段等。段的型別 1 表段 2 表分割槽段 table partition 或子分割槽段 subpartition 這種段型別用於分割槽,與表段很相似。分割槽表由乙個或多個分割槽段 table partit...

程式設計藝術學習筆記(1)

序言習題 1 通過一系列的替代,將四個變數的值 a,b,c,d 變為 b,c,d,a 用最少的步驟 開門菜,然而還是有很多值得思考的地方。能幫助人理解計算機對於賦值的操作。通過觀察,可以認為這是乙個a i 賦值給a i 1 的操作。最少的步驟,只需要五步即可。需要乙個t來作輔助,t a,a b,b ...