Oracle儲存結構(段、區、塊)認識
阿新 • • 發佈:2019-01-10
段:一個段是一系列的區的集合,包含表空間內一個特定邏輯存儲結構的所有資料。對每個表Oracle會分配一個或者多個區段來組成表資料段。一個表可能不止一個段的情況:一張索引組織表可能包含多個段、一張表中有lob欄位(lob欄位存儲在獨立的段內),分割槽表
oracle段的類型:資料段,臨時段,回滾段,索引段區:區是資料庫存儲空間的一個邏輯單位,由多個連續的資料塊組成。一個或多個區段組成一個段。當段中現存空間用完時,Oracle會為這個段分配一個新區。因為區是按需分配的,段中的區可能在磁盤上並不連續。一個段或它的所有區段都儲存在一個表空間上。在一個表空間內,一個段可以包含來自多個數據檔案的區;就是
塊:每個用戶創建的表空間可以使用不同的塊大小。不管塊的大小,每個資料塊的塊頭的結構都是一樣的存放表和索引資料,其結構主要由塊頭、事務層、資料層和塊尾4部分組成(塊尾是為了和塊頭進行資料校驗,確保資料塊是一致的)瞭解行遷移和行鏈接,行遷移由於一整行的資料被分成多個分片構成,這些分片位於不同的資料塊,因此訪問這些資料需要多個邏輯讀
每個itl槽的組成:回滾段號,插槽號,事務主鍵,undo地址,標志(事務提交狀態)還有就是pct-free和pct-used也順帶提一下:
pctfree這個引數定義了一個塊保留空間的百分比,保留空間是為了將來可能發生的更新操作
pctused這個引數控制一個塊什麼時候被重新啟用來插入資料,但是這是基於freelist管理的表空間,一般創建表空間的時候系統默認的segment space management管理是auto(即用位圖管理),那麼就不啟用pct-used。
反之管理模式為manual,則使用freelist 管理啟用pct_used。