oracle邏輯儲存結構理解

winston_DBA發表於2015-04-06

1.邏輯儲存結構資訊的檢視
oracle邏輯儲存結構是oracle自己建立和識別的結構,作業系統層面是無法獲知的,需要在資料庫層面才可檢視相關資訊。
2.oracle邏輯儲存結構的組成
主要包括資料塊、資料區、資料段和表空間。
資料塊是oracle中最小的儲存單元,也是最小的I/O單元,一個資料塊由多個作業系統塊組成。
資料區是oracle中最小的分配單元,由一組連續的資料塊組成。
資料段是為oracle資料庫為每個物件分配的邏輯單元,例如表,索引等。
表空間由多個資料段組成並且每個資料段只屬於一個表空間。
注意:
一個表空間可以擁有多個資料檔案,一個資料段也可以跨越多個資料檔案存在,但是每個資料區只能存在於一個資料檔案中。
3.邏輯儲存的管理
oracle資料庫並不直接管理資料塊,而是管理最小的邏輯分配單元:資料區。
對於資料區的管理,可以分為本地管理(透過資料檔案頭部的點陣圖實現)和資料字典管理。(oracle建議使用本地管理來管理資料區)
對於資料段的管理,可以分為自動段空間管理和手動段空間管理。(oracle建議使用ASSM,並且在本地管理表空間預設使用ASSM)
對於表空間的管理,取決於資料庫對於資料區的管理,分為本地管理和資料字典管理。
總結:
表空間的管理方式取決於資料庫對於資料區(extent)的管理方式。分為本地管理表空間和資料字典管理表空間。
資料段(segment)的管理方式取決於資料庫對於資料塊(block)的管理方式。分為ASSM(透過bitmap來管理空閒資料塊)和MSSM(透過連結串列來管理空閒資料塊)。

4.本地管理表空間的優勢
避免了使用資料字典來維護資料區過程中有可能發生的級聯操作。
可以自動追蹤空閒空間,避免了在資料字典維護資料區時使用連結串列來維護空閒塊的資源消耗。
可以自動決定本地管理的資料區的大小
5.段空間管理
自動段空間管理優勢:
簡化了管理,可以不用考慮很多儲存引數,主要考慮PCTFREE和PCTUSED引數即可。
提供了更高的併發性,每個事務都只搜尋自己的空閒塊點陣圖列表(bitmap),減少了競爭和等待。
RAC環境下的動態空間調整。
手動段空間管理:
手動段空間管理使用空閒連結串列(free list)來追蹤低於高水位線的所有空閒資料塊。
注意:
ASSM和MSSM一個重要區別:
ASSM在判斷是否可以將一條記錄插入一個資料塊時,不會考慮PCTUSED引數,而MSSM會考慮。這樣ASSM可以避免MSSM可能引起的資料塊空間的浪費。
6.資料字典管理表空間
資料字典管理表空間在資料庫管理資料區的時候,都需要對資料字典進行遞迴查詢(recursive query),會對資料庫效能造成負面影響。oracle不推薦使用。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30167136/viewspace-1507504/,如需轉載,請註明出處,否則將追究法律責任。

相關文章