Document Type | Technical Information
Category | Administration
Applicable Product Version | T6, T7
Document Number | TADTI162
Overview
This document explains the composition of Tablespaces and the maximum size of each component.
Method
Tablespace
Logical Composition of Tablespace
Segment
One of the units that stores data composed of Extents.
Since a Segment is smaller than a Tablespace, one Segment can belong to only one Tablespace and cannot exceed the maximum size of a single Tablespace.
Extent
A unit consisting of consecutive Blocks.
When creating a Tablespace, if EXTENT MANAGEMENT LOCAL with UNIFORM SIZE is specified, the Extent size follows the specified UNIFORM SIZE; if AUTOALLOCATE (default) is used, it follows the _TX_SGMT_ALLOC_SIZE parameter (default 0).
Data Block
The smallest unit of data used by the database.
Tibero stores and manages data in units of Blocks.
Physical Composition of Tablespace
Tablespace
Theoretically, it can have up to 4 billion (2^32) Blocks, which corresponds to about 32TB based on 8KB Blocks.
It can also theoretically be composed of up to 1024 Datafiles.
However, assuming it is not affected by the nofile limit of Ulimit and the MAXDATAFILES limit from DB creation or Controlfile recreation, the number of Datafiles always guaranteed by the DB is 896.
Therefore, the actual maximum usable capacity is 32GB ร 896 = approximately 28TB.
Datafile
Datafiles are managed with a unique Datafile ID in the entire DB called absolute fileno (32bit) and a file ID within the Tablespace called relative fileno (10bit, 0~1023).
In typical environments, to improve conversion speed, relative fileno 0~127 is configured to be the same as absolute fileno 0~127.
Within the 0~127 range, relative fileno cannot be duplicated; from 128 onwards, duplication is possible.
However, Temp Tablespaces are managed separately and can have up to 1024 added.
Therefore, the maximum capacity of Temp Tablespaces is 1024 ร 32GB = 32TB.
SYSTEM, UNDO, SYSSUB, and USR Tablespaces each have one Datafile created, with both absolute fileno and relative fileno assigned from 0 to 3.
Although theoretically up to 1024 Datafiles can be configured, excluding 128 relative fileno that cannot be assigned, the actual usable number of Datafiles is 896.
How to Check Maximum Configuration
You can verify this by creating two Tablespaces each composed of more than 128 Datafiles and performing a Controlfile dump.
absolute fileno
Check the FILE #ID value.
(Only the values in the *data file sections apply; the FILE values in the *filenames sections are different.)relative fileno
Check the rel_no = ID value.
You can distinguish Tablespaces by the ts# value displayed on the same line.
If you try to add a Datafile to a Tablespace where relative fileno is set up to 1023, the following error occurs:
ERROR_TCCF_NO_DF_LEFT(-24017) - * action: Check the control file and try again.; If addition is needed, create a new Tablespace and perform Segment Move
Datafile and Extent
Extent Allocation Size
The Extent allocation size is determined by the _TX_SGMT_ALLOC_SIZE parameter.
The value must be set as a multiple of 16; if set to 0, the additional Extent size is determined according to the Segment Size.
Since the logic uses remaining space before extending the Datafile, Extents with different sizes may be created in between.
Extent Allocation Size According to Segment Size (based on 8KB)
| segment < 1MB | Allocated in 128KB (16 blocks) increments |
| 1MB <= segment < 64MB | Allocated in 1MB (128 blocks) increments |
| 64MB <= segment < 1GB | Allocated in 8MB (1024 blocks) increments |
| 1GB < segment | Allocated in 64MB (8192 blocks) increments |
However, in some versions of Tibero6, if the Segment Size exceeds 24GB, the Segment Size is calculated as 0 and allocation starts again from 128KB.
Datafile Space and Extent
If the remaining space in the Datafile is smaller than the Extent size to be allocated next, the following applies:
If the consecutive Blocks remaining in the Datafile are less than 128KB (16 blocks)
โ Datafile Extend or CANNOT EXTEND error occurs.Space smaller than 16 blocks cannot be allocated.
Example)
When 1024 Blocks are needed but only 550 Blocks remain
512 Blocks, which is less than 540 Blocks, are allocated.
(540 - 512 = 28)An additional 16 Blocks, which is less than 28 Blocks, are allocated.
(28 - 16 = 12)The remaining 12 Blocks are less than 16 Blocks, so Datafile Extend or CANNOT EXTEND error occurs.
Datafile Extend Method
Datafile Extend expands by multiples of the size specified by autoextend.
When allocating a 1024 Block Extent on a Datafile with autoextend set to 4MB
Since 1024 Blocks equal 8MB, 8MB (2 times 4MB) is extended.If autoextend is 5MB, 10MB is extended.
In this case, 10MB is extended at once, not 5MB twice.
After using 8MB, when trying to allocate the next Extent, only 2MB remains, so 256 Blocks are allocated instead of 1024 Blocks.
Table
Composition and Size
A Table is composed of at least one Segment and cannot exceed the maximum size limit of a Segment.
Single Table
A single table consists of only one Segment.
The maximum size is approximately 31.25TB.
(Excluding SYS, SYSSUB, UNDO, USR Tablespaces, based on 1000 Datafiles configuration)
Partition
Each Partition or SubPartition consists of one Segment.
Size
The maximum size of a Table can be extended by 28TB ร N (number of Partitions or SubPartitions).
Due to factors such as Header, PCT FREE, Row Chain (when one Row is stored across multiple Blocks), and fragmentation, the actual storable data size may be smaller than the calculated maximum size.
There is no separate limit on the number of Rows themselves.