Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: Structure Of DataBlock
Gautam <gautaveena_at_yahoo.com> wrote:
>I am begginer in oracle world. I am tring to understand Oracle
>Database Structure. I read Concept Guide from Oracle Corporation But
>for me The PHYSICAL & LOGICAL STRUCTURE of ORACLE DATABLOCK is not
>clear So PLEASE any one can help me here. Please provide me Greate
>Detail of DATABLOCK.
>
>Your Help will be highly appreciated.
I'm not sure why, as a beginner, you need to know the layout of a datablock. However:
+----------------------------+ |Cache layer | +----------------------------+
+----------------------------+
+----------------------------+ |Table directory | +----------------------------+ | Row Directory | | | | | | | V | | Free Space | | ^ | | | | | | | Row data | +----------------------------+
So, the header has information about the block address, its type, the format version, the SCN, various flags etc.
The transaction layer contains information about which transactions are using the block (or have recently used the block and are pending cleanout), and various free space management.
There's then a data header, with information about what's in the block, and how much space there is.
The table directory is most notable in a cluster, where several tables may share the same block.
The row directory contains pointers to the row data. Indexes point at the row directory, so as a row gets moved around the block or to other blocks, only the data block needs updating, not all indexes.
Row data is just what it sounds like.
The freespace isn't really quite as neat as indicated, it tends to get fragmented within a block. Oracle just maintains a pointer in the data header to a single bit of freespace, and a count of the total number of free bytes. When it wants more space than the current free chunk pointed to has, it does a on-the-fly reorganisation to move all freespace together.
-- Andrew Mobbs - http://www.chiark.greenend.org.uk/~andrewm/Received on Tue Apr 02 2002 - 08:16:46 CST
![]() |
![]() |