Oracle數據塊實現原理深入解讀建站知識
導讀:1建站知識Oracle對數據庫數據文件(datafile)中的存儲空間進行管理的單位是數據塊(data block),本文將詳細介紹個業網站建設公司建設網站公司。
下午在學習oracle 10g r2 concepts
在這留一筆。
Oracle對數據庫數據文件(datafile)中的存儲空間進行管理的單位是數據塊(data block)。數據塊是數據庫中最小的(邏輯)數據單位。與數據塊對應的,所有數據在操作系統級的最小物理存儲單位是字節(byte)。每種操作系統都有一個被稱為塊容量(block size)的參數。Oracle每次獲取數據時,總是訪問整數個(Oracle)數據塊,而不是按照操作系統塊的容量訪問數據。
數據庫中標準的數據塊(data block)容量是由初始化參數 DB_BLOCK_SIZE指定的。除此之外,用戶還可以指定五個非標準的數據塊容量(nonstandardblock size)。數據塊容量應該設為操作系統塊容量的整數(同時小于數據塊容量的最大限制),以便減少不必要的I/O操作。Oracle數據塊是Oracle可以使用和分配的最小存儲單位。
數據塊結構
在Oracle中,不論數據塊中存儲的是表(table)、索引(index)或簇表(clustered data),其內部結構都是類似的。塊結構圖如下所示:
本圖顯示了數據塊的各個組成部分,包括:數據塊頭(包括標準內容和可變內容)(common and variable header),表目錄區(table directory),行目錄區(row directory),可用空間區(free space),行數據區(row data)。圖中兩個箭頭表示一個數據塊中的可用空間區的容量是可變的。
數據塊頭(包括標準內容和可變內容)
數據塊頭(header)中包含了此數據塊的概要信息,例如塊地址(block address)及此數據塊所屬的段(segment)的類型(例如,表或索引)。
表目錄區
如果一個數據表在此數據塊中儲存了數據行,那么數據表的信息將被記錄在數據塊的表目錄區(table directory)中。
行目錄區
此區域包含數據塊中存儲的數據行的信息(每個數據行片斷(row piece) 在行數據區(row data area)中的地址)。[一個數據塊中可能保存一個完整的數據行,也可能只保存數據行的一部分 ,所以文中使用row piece]
當一個數據塊(data block)的行目錄區(row directory)空間被使用后,即使數據行被刪除(delete),行目錄區空間也不會被回收。舉例來說,當一個曾經包含50條記錄的數據塊被清空后,其塊頭(header)的行目錄區仍然占用100字節(byte)的空間
管理開銷
數據塊頭(data block header),表目錄區(table directory),行目錄區(rowdirectory)被統稱為管理開銷(overhead)。其中 有些開銷的容量是固定的;而有些開銷的總容量是可變的。數據塊中固定及可變管理開銷的容量平均在84到107字節(byte)之間。
聲明: 本文由我的SEOUC技術文章主頁發布于:2023-05-23 ,文章Oracle數據塊實現原理深入解讀建站知識主要講述深入,原理,Oracle數據塊實現原理深入解讀建站知識網站建設源碼以及服務器配置搭建相關技術文章。轉載請保留鏈接: http://www.bifwcx.com/article/web_5815.html