oracle表的類型

本文轉自http://www.ej38.com/showinfo/Oracle-181930.html

表類型:
1堆組織表(heap organized table):這些就是“普通”的標準數據庫表。數據以堆的方式管理。堆(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)散列,而與該鍵相關的一系列記錄以某種有序順序到達(因此這些記錄是基於時間戳的記錄),並按這種有序順序處理。
    例如,客戶在你的訂單輸入系統中下訂單,這些訂單會按先進先出(first in, first out, FIFO)的方式獲取和處理。在這樣一個系統中,有序散列聚簇就是適用的數據結構。
6嵌套表(nested table):嵌套表是Oracle對象關係擴展的一部分。它們實際上就是系統生成和維護的父/子關係中的子表。
    嵌套表與子表的主要區別是:嵌套表不像子表(如EMP)那樣是“獨立”表。
7臨時表(temporary table):這些表存儲的是事務期間或會話期間的“草稿”數據。
    臨時表要根據需要從當前用戶的臨時表空間分配臨時區段。每個會話只能看到這個會話分配的區段;它從不會看到其他任何會?......

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章