Variable block header

The variable block header immediately follows the fixed block header in the block, and is dependent on the number of rows stored in the block. The size of the variable block header may be calculated as:

4 + (2 × number of rows in the block)

The initial 4 bytes contain the table directory, and there is a 2-byte row directory entry for each stored row.

As you can see, the fixed portion of the block header remains a constant size for every block of a particular table, and, in reality, for most tables, unless INITRANS is specified. The variable portion, however, is dynamic, and depends on the number of rows stored. More, smaller rows in a table will result in less available space in the remainder of the block than will fewer, larger rows. In addition, since the fixed portion is indeed fixed, better utilization of blocks can be expected with larger blocksizes. For example, a database having an Oracle blocksize of 2048 (2K) will lose about 3.9% of each block (57 + 23 bytes) to the fixed block header, while a database having an Oracle blocksize of 8192 (8K) will lose only .97% of each block. This is one way in which larger Oracle blocksizes may be more efficient.

Get Oracle Database Administration: The Essential Refe now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.