Extents

An extent consists of a collection of contiguous pages that store data for a given table.

When you create a table, the database server allocates a fixed amount of space to contain the data to be stored in that table. (See Tables.) When this space fills, the database server must allocate space for additional storage. The physical unit of storage that the database server uses to allocate both the initial and subsequent storage space is called an extent.

The following figure illustrates the concept of an extent.
Figure 1: An extent that consists of six contiguous pages on a raw disk device

This figure is described in the surrounding text.

Every permanent database table has two extent sizes associated with it. The initial-extent size is the number of KB allocated to the table when it is first created. The next-extent size is the number of KB allocated to the table when the initial extent (and any subsequent extents) becomes full. For permanent tables and user-defined temporary tables, the next-extent size begins to double after each extent. For system-created temporary tables, the next-extent size begins to double after 4 extents have been added.

When you create a table, you can specify the size of the initial extent, and the size of the extents to be added as the table grows. You can also modify the size of an extent in a table in a dbspace, and you can modify the size of new subsequent extents. To specify the initial-extent size and next-extent size, use the CREATE TABLE and ALTER TABLE statements. For more information, see the HCL OneDB™ Guide to SQL: Syntax and disk structures in the HCL OneDB Administrator's Reference.

When you create a table with a column for CLOB or BLOB data types, you also define extents for an sbspace. For more information, see Storage characteristics of sbspaces.

The following figure shows how the database server allocates six pages for an extent:
  • An extent is always entirely contained in a chunk; an extent cannot cross chunk boundaries.
  • If the database server cannot find the contiguous disk space that is specified for the next-extent size, it searches the next chunk in the dbspace for contiguous space.
Figure 2: Process of extent allocation

This figure describes a process in which the database server decides to allocate an extent and begins a search for six contiguous free pages. The database server cannot find six contiguous free pages in the first chunk and extends its search to the next chunk. The database server finds six contiguous free pages in the second chunk and allocates an extent.