在Oracle數據庫中,Block是數據文件的基本存儲單位
數據塊(Data Block):數據塊是Oracle數據庫中最小的I/O單元。每個數據塊包含一定數量的行(Row)和相關的系統信息。數據塊的大小可以根據需要進行配置,但通常為2KB、4KB、8KB或16KB。數據塊是數據文件的基本組成部分,用于存儲表、索引等數據對象的數據。
高水位線(High Water Mark, HWM):高水位線是數據塊中已使用空間的邊界。在數據塊中,高水位線之上的空間是未使用的,而高水位線之下的空間已被占用。當向數據塊中插入新數據時,高水位線會向上移動,以反映已使用空間的增加。
空閑空間(Free Space):空閑空間是數據塊中未使用的部分,位于高水位線之上。當從數據塊中刪除數據時,空閑空間會增加。在插入新數據時,數據庫會盡量使用空閑空間,以減少數據塊的碎片化。
數據塊頭(Block Header):數據塊頭是數據塊的起始部分,包含有關數據塊的元數據,如數據塊的編號、數據文件編號、表空間編號、段編號、數據塊類型等。此外,數據塊頭還包含有關數據塊使用情況的信息,如高水位線、空閑空間等。
行指針數組(Row Pointer Array):行指針數組位于數據塊頭之后,用于存儲指向數據塊中每行數據的指針。這些指針有助于快速定位和訪問數據塊中的特定行。
數據行(Row):數據行是數據塊中實際存儲數據的部分。每個數據行包含一條記錄的所有列值。數據行按照行指針數組中的順序存儲在數據塊中。
數據塊尾(Block Trailer):數據塊尾位于數據塊的末尾,包含有關數據塊的校驗和、備份信息等。這些信息有助于確保數據塊的完整性和可靠性。
總之,Oracle數據庫中的Block是由數據塊、高水位線、空閑空間、數據塊頭、行指針數組、數據行和數據塊尾組成的。這種存儲結構有助于提高數據庫的性能和可靠性。