Data Blocks  «Prev

Segment_header_block in Oracle

Oracle Data Block consisting of 1) data block header, 2) table directory, 3) row directory 4) free space 5) row data

  1. data block header: references information about the data block header
  2. table directory: references information about the tables which have rows in this block
  3. row directory: references information about actual rows, including an address for each row.
  4. free space: references information about the free space allocated for INSERT and UPDATE; actual use of free space depends on the value of
  5. PCTFREE row data: references information about table data and index data

Allocate and Manage Space for the Objects

When a database is created, it is divided into multiple logical sections called tablespaces. The SYSTEM tablespace is the first tablespace created, and the SYSAUX tablespace is created as part of every Oracle Database 11g database. You can then create additional tablespaces to hold different types of data (such as tables, indexes, and undo segments). Tablespaces can be renamed by means of the rename to clause of the alter tablespace command.
Note:SYSAUX is created as part of every database starting with Oracle 10 g. It is created automatically if you use the Database Upgrade Assistance provided by Oracle.
When a tablespace is created, datafiles are created to hold its data. These files immediately allocate the space specified during their creation. Each datafile can support only one tablespace. Datafiles can be set to automatically extend when they run out of space.
You can set the increment by which
  1. they extend and
  2. their maximum size.

Logical Database Objects

Each user's schema is a collection of logical database objects, such as tables and indexes, that refer to physical data structures that are stored in tablespaces. Objects from a user's schema may be stored in multiple tablespaces, and a single tablespace can contain objects from multiple schemas. When a database object (such as a table or index) is created, it is assigned to a tablespace via user defaults or specific instructions. A segment is created in that tablespace to hold the data associated with that object. A segment is made up of sections called extents, which are contiguous sets of Oracle blocks. Once the existing extents can no longer hold new data, the segment will obtain another extent. If a segment is composed of multiple extents, there is no guarantee that those extents will be contiguous.
Tablespaces can be created as locally managed (the default) or dictionary managed. Databases have one or more tablespaces, and tablespaces consist of one or more datafiles. Within those tablespaces, Oracle stores segments for database objects and each segment can have multiple extents.

Extent information

Extent information for a specific object is stored in both
  1. the data dictionary and
  2. the segment headers.
If a segment grows over a specific number of extents depending on the block size and platform, Oracle will create extent map blocks to keep track of the additional extents. Managing the space used by tablespaces, datafiles, segments, and database objects is one of the basic functions of the DBA. When you create a tablespace, specify the default storage parameters for the tablespace. Every object that is created in that tablespace will then use those storage parameters unless you explicitly override them.