一、數據塊(data blocks)
數據塊是Oracle數據庫邏輯存儲結構中的最小單位,也是執行數據庫輸入輸出的最小存儲單位。通常Oracle數據塊是操作系統塊的整數倍。數據塊的標准大小被寫入到初始化參數DB_BLOCK_SIZE中,oracle允許在同一個數據庫中存在不同大小的數據塊,與標准塊大小不同的就是非標准塊。
二、數據區(extent)
數據區是由一組連續的Oracle數據塊所構成的Oracle存儲結構,由一個或多個數據塊組成。一個或多個數據區組成一個段,當段中所有空間被使用完后,Oracle系統將自動為該段分配一個新的數據區,可見,數據區是Oracle存儲分配的最小單位。
使用數據區的目的是用來保存特定數據類型的數據,也是表中數據增長的基本單位。在Oracle數據庫中,分配存儲空間就是以數據區為單位的,一個Oracle對象包含至少一個數據區。設置一個表或索引的存儲參數包含設置它的數據區大小。
三、段(segment)
段是由一個或多個數據區構成的,它不是存儲空間的分配單位,而是一個獨立的邏輯存儲結構,用於存儲表、索引或簇等占用空間的數據對象。一個段只屬於一個特定的數據對象,每當創建一個具有獨立段的數據對象時,Oracle將為它創建一個段。
1.數據段:數據段中保存的是表中的數據記錄。建表時Oracle系統將為表創建數據段。當表中數據量增大時,數據段的大小自然也隨着變大,數據段的增大過程是通過向其添加新的數據區來實現的。當創建一個表時,系統自動創建一個以該表的名字命名的數據段。
2.索引段:索引段中包含了用於提高系統性能的索引。一旦建立索引,系統自動創建一個以該索引的名字命名的索引段。
3.回滾段:回滾段中保存了回滾條目,Oracle將修改前的舊值保存在回滾條目中。利用這些信息,可以撤銷未提交的操作,以便為數據庫提供讀入一致性和回滾未提交的事務,即用來回滾事務的數據空間。當一個事務開始處理時,系統為之分配回滾段,回滾段可以動態創建和撤銷。
4.臨時段:當執行創建索引。查詢等操作時,Oracle可能會使用一些臨時存儲空間,用於暫時性地保存解析過的查詢語句以及在排序過程中產生的臨時數據,Oracle系統將在專門用於存儲臨時數據的表空間中為操作分配臨時段。
四、表空間(tablespace)
表空間是Oracle數據庫的最大邏輯划分區域,通常用來存放數據表、索引、回滾段等數據對象。一個表空間由一個或多個數據文件(操作系統物理存儲結構)組成,一個數據文件只屬於一個表空間。表空間的大小等於所有從屬於它的數據文件大小的總和。
