柚子快報激活碼778899分享:oracle數(shù)據(jù)塊內(nèi)部結(jié)構(gòu)詳解
柚子快報激活碼778899分享:oracle數(shù)據(jù)塊內(nèi)部結(jié)構(gòu)詳解
文章目錄
Oracle數(shù)據(jù)塊詳解概述Oracle塊具有以下特點:① 最小的I/O單元;② 包含一個或多個OS塊;③ 大小由參數(shù)DB_BLOCK_SIZE決定;④ 數(shù)據(jù)庫創(chuàng)建時設(shè)置,數(shù)據(jù)庫創(chuàng)建后不能更改
Oracle數(shù)據(jù)塊詳解
概述
操作系統(tǒng)塊是操作系統(tǒng)讀寫的最小操作單元,也是操作系統(tǒng)文件的屬性之一。當(dāng)創(chuàng)建一個Oracle數(shù)據(jù)庫時,選擇一個基于操作系統(tǒng)塊的整數(shù)倍大小作為Oracle數(shù)據(jù)庫塊的大小。Oracle數(shù)據(jù)庫讀寫操作則是以O(shè)racle塊為最小單位,而非操作系統(tǒng)塊。
數(shù)據(jù)庫塊也稱邏輯塊或Oracle塊,它對應(yīng)磁盤上一個或多個物理塊,它的大小由初始化參數(shù)DB_BLOCK_SIZE決定,可以定義數(shù)據(jù)塊為2K、4K、8K、16K、32K甚至更大,默認(rèn)Oracle塊大小是8K。若一旦設(shè)置了Oracle數(shù)據(jù)塊的大小,則在整個數(shù)據(jù)庫生命期間不能被更改。使用一個合適的Oracle塊大小對于數(shù)據(jù)庫的調(diào)優(yōu)是非常重要的
Oracle塊具有以下特點:
① 最小的I/O單元;
② 包含一個或多個OS塊;
③ 大小由參數(shù)DB_BLOCK_SIZE決定;
④ 數(shù)據(jù)庫創(chuàng)建時設(shè)置,數(shù)據(jù)庫創(chuàng)建后不能更改
在Oracle中,不論數(shù)據(jù)塊中存儲的是表(TABLE)、索引(INDEX)或簇表(CLUSTER TABLE),其內(nèi)部結(jié)構(gòu)都是類似的。Oracle塊的結(jié)構(gòu)如下圖所示:
由上圖可以看出,一個Oracle塊大約由數(shù)據(jù)塊頭(包括標(biāo)準(zhǔn)內(nèi)容和可變內(nèi)容,Common And Variable Header)、表目錄(Table Directory)、行目錄(Row Directory)、可用空間(Free Space)和行數(shù)據(jù)(Row Data)這幾部分組成。圖中兩個箭頭表示一個數(shù)據(jù)塊中的可用空間區(qū)的容量是可變的。
●數(shù)據(jù)塊頭(Block Header):主要包含有數(shù)據(jù)塊地址的一些基本信息(塊地址,Block Address)和段的類型(表段、索引段等)。塊頭自上而下進行增長。
●表目錄(Table Directory):如果一個堆組織表在此數(shù)據(jù)塊中儲存了數(shù)據(jù)行,那么該表的信息將被記錄在數(shù)據(jù)塊的表目錄中。多個表可以將行存儲在相同的塊中。
●行目錄(Row Directory):此區(qū)域包含數(shù)據(jù)塊中存儲的數(shù)據(jù)行的信息,即每個數(shù)據(jù)行片斷(Row Piece)在行數(shù)據(jù)(Row Data)中的地址。一個數(shù)據(jù)塊中可能保存一個完整的數(shù)據(jù)行,也可能只保存數(shù)據(jù)行的一部分。當(dāng)一個數(shù)據(jù)塊(Data Block)的行目錄(Row Directory)空間被使用后,即使數(shù)據(jù)行被刪除(DELETE),行目錄空間也不會被回收。舉例來說,當(dāng)一個曾經(jīng)包含50條記錄的數(shù)據(jù)塊被清空后,其塊頭(Header)的行目錄仍然占用100字節(jié)(Byte)的空間。僅在塊中插入新行時,數(shù)據(jù)庫才會重用此空間。
●可用空間(Free Space):是指可以為以后的更新和插入操作分配的空間,大小由PCTFREE和PCTUSED兩個參數(shù)影響??捎每臻g位于塊的中部,允許頭和行數(shù)據(jù)空間在必要時進行增長。當(dāng)插入新行或用更大的值更新現(xiàn)有行的列時,行數(shù)據(jù)會占用可用空間。導(dǎo)致塊頭增長的事件包括:行目錄需要更多的行條目和需要的事務(wù)處理插槽數(shù)多于最初配置的數(shù)目。塊中的可用空間最初是相鄰的。但是,刪除和更新操作可能會使塊中的可用空間變成碎片。
●行數(shù)據(jù)(Row Data):數(shù)據(jù)塊(Data Block)中行數(shù)據(jù)(Row Data)包含了表或索引的實際數(shù)據(jù)。一個數(shù)據(jù)行可以跨多個數(shù)據(jù)塊。行數(shù)據(jù)空間自下而上進行增長
柚子快報激活碼778899分享:oracle數(shù)據(jù)塊內(nèi)部結(jié)構(gòu)詳解
文章來源
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。