The default block size for the
database is specified with the DB_BLOCK_SIZE initialization parameter; this block size is used
for the SYSTEM, TEMP, and SYSAUX tablespaces at database creation and cannot be changed
without re-creating the database.
The format for a data block is presented in Figure 6-2.
Every data block contains a header that specifies what kind of data is in the block??”table rows
or index entries. The table directory section has information about the table with rows in the block;
a block can have rows from only one table or entries from only one index, unless the table is a
clustered table, in which case the table directory identifies all the tables with rows in this block.
The row directory provides details of the specific rows of the table or index entries in the block.
FIGURE 6-1 Oracle segments, extents, and blocks
168 Oracle Database 11g DBA Handbook
The space for the header, table directory, and row directory is a very small percentage of the
space allocated for a block; our focus, then, is on the free space and row data within the block.
Within a newly allocated block, free space is available for new rows and updates to existing
rows; the updates may increase or decrease the space allocated for the row if there are varyinglength
columns in the row or a non-NULL value is changed to a NULL value, or vice versa. Space
is available within a block for new inserts until there is less than a certain percentage of space
available in the block defined by the PCTFREE parameter, specified when the segment is created.
Pages:
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308