This chapter describes the nature of and relationships amongst the logical storage structures in the database server.You space watching: What hatchet is offered to define the unused an are at the finish of the critical cluster

This chapter consists of the complying with topics:

Introduction to Data Blocks, Extents, and also Segments allocates logical database room for all data in a database. The devices of database an are allocation room data blocks, extents, and also segments. Figure 2-1shows the relationships amongst these data structures:

Figure 2-1 The Relationships among Segments, Extents, and Data Blocks


Description that "Figure 2-1 The Relationships amongst Segments, Extents, and also Data Blocks"

At the finest level the granularity, stores data in data block (also referred to as logical blocks, blocks, or pages). One data block synchronizes to a specific number of bytes of physics database room on disk.

You are watching: What term is used to describe the unused space at the end of the last cluster

The next level of logical database space is an extent. An level is a specific number of contiguous data blocks allocated for storing a specific form of information.

The level of logical database storage greater than an level is called a segment. A segment is a collection of extents, each of which has actually been allocated for a specific data framework and all of which space stored in the exact same tablespace. For example, every table"s data is save in its very own data segment, while every index"s data is save on computer in its very own index segment. If the table or table of contents is partitioned, each partition is save in its very own segment. allocates an are for segment in units of one extent. Once the existing extents the a segment room full, allocates an additional extent for the segment. Since extents space allocated together needed, the extents of a segment might or may not it is in contiguous top top disk.

A segment and all its extents space stored in one tablespace. Within a tablespace, a segment can incorporate extents from an ext than one file; that is, the segment can span datafiles. However, each level can save on computer data from just one datafile.

Although you deserve to allocate extr extents, the blocks themselves room allocated separately. If friend allocate an level to a certain instance, the blocks are immediately allocated to the free list. However, if the level is not allocated come a specific instance, climate the block themselves are allocated only once the high water note moves. The high water note is the boundary in between used and unused space in a segment.

Note: recommends the you manage totally free space automatically. See "Free space Management".

Overview of Data Blocks manages the storage room in the datafiles of a database in units referred to as data blocks. A data block is the smallest unit that data used by a database. In contrast, at the physical, operating mechanism level, every data is stored in bytes. Each operating system has actually a block size. inquiry data in multiples the data blocks, no operating mechanism blocks.

The standard block dimension is specified by the DB_BLOCK_SIZE initialization parameter. In addition, you can specify of up to five nonstandard block sizes. The data block sizes must be a lot of of the operation system"s block size within the maximum limit to stop unnecessary I/O. data blocks space the smallest systems of storage the deserve to use or allocate.

See Also:

Your operating system-specific documentation for more information around data block sizes

Data Block Format

The data block layout is similar regardless of whether the data block contains table, index, or clustered data. Number 2-2illustrates the layout of a datablock.

Figure 2-2 Data Block Format


Description that "Figure 2-2 Data Block Format"Header (Common and also Variable)

The header contains general block information, such together the block resolve and the type of segment (for example, data or index).

Table Directory

This section of the data block includes information around the table having rows in this block.

Row Directory

This part of the data block contains information about the actual rows in the block (including addresses because that each row piece in the heat data area).

After the room has been allocated in the row magazine of a data block"s overhead, this space is no reclaimed as soon as the heat is deleted. Therefore, a block the is at this time empty however had as much as 50 rows at once continues to have 100 bytes allocated in the header because that the heat directory. reuses this space only when new rows are placed in the block.


The data block header, table directory, and also row brochure are ad to collectively as overhead. Some block overhead is addressed in size; the full block overhead size is variable. Top top average, the fixed and also variable portions of data block overhead complete 84 come 107 bytes.

Row Data

This section of the data block consists of table or index data. Rows can expectancy blocks.

See Also:

"Row Chaining and also Migrating"Free Space

Free an are is allocated for insertion of new rows and also for updates to rows that call for additional an are (for example, once a trailing null is updated to a nonnull value).

In data blocks allocated because that the data segment the a table or cluster, or for the index segment of one index, complimentary space can likewise hold transaction entries. A transaction entry is required in a block because that each INSERT, UPDATE, DELETE, and SELECT...FOR update statement accessing one or much more rows in the block. The room required for transaction entries is operating device dependent; however, transaction entries in many operating equipment require approximately 23 bytes.

Free an are Management

Free space can be managed immediately or manually.

Free space can it is in managed automatically inside database segments. The in-segment free/used room is tracked using bitmaps, as opposed to cost-free lists. Automatically segment-space management offers the following benefits:

Ease the use

Better room utilization, specifically for the objects with very varying row sizes

Better run-time adjustment come variations in concurrent access

Better multi-instance habits in regards to performance/space utilization

You specify automatic segment-space management when you develop a locally controlled tablespace. The specification then applies to all segments subsequently created in this tablespace.

See Also: Database Administrator"s GuideAvailability and Optimization of free Space in a Data Block

Two types of statements have the right to increase the complimentary space the one or more data blocks: DELETE statements, and UPDATE statements that update existing worths to smaller sized values. The released an are from these varieties of declaration is accessible for succeeding INSERT declaration under the adhering to conditions:

If the INSERT explain is in the very same transaction and also subsequent to the statement that frees space, then the INSERT statement can use the room made available.

If the INSERT declare is in a separate transaction native the statement the frees an are (perhaps being operation by an additional user), then the INSERT statement have the right to use the space made easily accessible only after the other transaction commits and also only if the room is needed.

Released an are may or may not it is in contiguous with the key area of free space in a data block. coalesces the totally free space that a data block only as soon as (1) one INSERT or update statement make the efforts to use a block that consists of enough complimentary space to contain a brand-new row piece, and also (2) the totally free space is fragmentized so the row item cannot be placed in a contiguous section of the block. walk this compression just in such situations, because otherwise the power of a database system decreases as result of the consistent compression of the complimentary space in data blocks.

Row Chaining and Migrating

In two circumstances, the data for a row in a table may be too huge to fit right into a solitary data block. In the first case, the row is too big to fit right into one data block once it is very first inserted. In this case, shop the data for the row in a chain of data blocks (one or more) scheduled for that segment. Heat chaining most often occurs with large rows, such as rows that contain a shaft of datatype long or lengthy RAW. Row chaining in these instances is unavoidable.

However, in the 2nd case, a heat that originally fit right into one data block is to update so that the overall row length increases, and the block"s free space is already totally filled. In this case, migrates the data because that the entire row come a brand-new data block, suspect the entire row have the right to fit in a brand-new block. preserves the original row item of a moved row to allude to the brand-new block include the migrated row. The rowid the a moved row does not change.

When a row is chained or migrated, I/O performance linked with this row decreases due to the fact that should scan more than one data block to retrieve the information for the row.

See more: Watch The Walking Dead Season 9 Episode 2 Online Free Live Stream

See Also:

The PCTFREE Parameter

The PCTFREE parameter set the minimum percent of a data block to be scheduled as totally free space for possible updates come rows that already exist in that block. Because that example, assume the you clues the complying with parameter in ~ a create TABLE statement:

PCTFREE 20 This states that 20% of each data block in this table"s data segment be kept cost-free and obtainable for possible updates come the existing rows already within each block. New rows have the right to be included to the heat data area, and also corresponding information deserve to be added to the variable parts of the overhead area, until the row data and overhead full 80% that the complete block size. Figure 2-3illustrates PCTFREE.