這里指數據文件的邏輯體系結構,包括1.表空間(TABLESPACE)??2.段(SEGMENT)??3.區(EXTENT)??4.塊(BLOCK)
數據庫(Database)由若干表空間(TABLESPACE)組成,表空間由若干段(SEGMENT)組成,段由若干區(EXTENT)組成,區由若干塊(BLOCK)組成。
創建一個表,就相當于一個段,但是表并不一定只對應一個段,如果表包含LOB列類型,則LOB至少會有兩個段:數據段和索引段,如果表有分區,
則每個分區又獨立成段。
select t.* from dba_tablespaces t ;? ---查看表空間信息
select t.* from user_segments t;? ---段信息
select t.* from user_extents t;? ---區信息
1. BLOCK,BOLCK是Oracle最小邏輯數據單位,操作系統也有類似的塊容量參數(block size),Oracle的Block大小一般為操作系統的整數倍。
數據塊的組成分為 數據塊頭(包括標準內容和可變內容 common and variable header) , 表目錄區(table directory) , 行目錄區(row directory) ,可用空間區(free space),
?行數據區(row data) 5個部分。
?
- 數據塊頭包含了數據塊的概要信息,例如.塊地址(block address),此數據塊所屬段的類型(表or索引)
- 表目錄區,只有一行數據插入到數據塊中時,該行數據所在表的信息將存儲在該區域。
- 行目錄區,存放你插入行的地址?
- 空間區,即塊中空余空間,由參數PCTFREE(每個段統一控制)控制,如果設置為10,表示該塊將空余10%空間,如果是表或者索引塊,該區域還會存儲事務條目,大概有23字節開銷
- 行數據區,就是存儲具體的行或索引信息
?
?2. EXTENT?是Oracle分配空間的最小單位,注意"分配"兩個字眼。
?
摘自: 《收貨,不止Oracle》