Saturday, June 21, 2008

Data Block Format in Oracle

You already might know that oracle manages the storage space in the datafiles of the database in units called data blocks. You might be curious about what the data block actually holds, in other words what data block format is.

The data block holds the following format.
1)Header Information (Common and Variable Header)
2)Table Directory
3)Row Directory
4)Row Data
5)Free Space

1)Header Information (Common and Variable Header)
---------------------------------------------------------------------

• The header contains general information about data block. It contains information like data block address, type of segment.
2)Table Directory
----------------------------

• This part of data block contains information about the table having rows in this block.
3)Row Directory
--------------------------------

• This part of data block contains information about the actual rows in the block.
• After the space has been allocated in the row directory of a data block's overhead, this space is not reclaimed when the row is deleted.

The data block header, table directory, and row directory are collectively known as overhead.

4)Row Data
---------------------

• This part of data block contains row data. A row can span between multiple blocks.

5)Free Space
-----------------------

• The free space part is for insertion of new rows and for updates to rows that require additional space.

• The free space can also hold transaction entries like INSERT, UPDATE, DELETE, or SELECT...FOR UPDATE statement accessing one or more rows in the block.

• The space taken by the transaction entry is approximately 23 bytes.

No comments:

Post a Comment