Inline and Out-of-Line Columns
The in-memory layout of the rows of a table is designed to provide fast access to
rows while minimizing wasted space. TimesTen designates each VARBINARY,
NVARCHAR2 and VARCHAR2 column of a table as either
inline or out-of-line.
-
An inline column has a fixed length. All values of fixed-length columns of a table are stored row wise.
-
A not inline column (also referred to as an out-of-line column) has a varying length. Some
VARCHAR2,NVARCHAR2orVARBINARYdata type columns are stored out-of-line. Out-of-line columns are not stored contiguously with the row but are allocated. By default, TimesTen storesVARCHAR2,NVARCHAR2andVARBINARYcolumns whose declared column length is > 128 bytes as out-of-line. In addition, all LOB data types are stored out-of-line. By default, TimesTen stores variable-length columns whose declared column length is <= 128 bytes as inline.
Most operations are slightly slower when performed on an out-of-line column instead of an inline column. There are several performance considerations when you use out-of-line columns instead of inline columns:
-
Accessing data is slower because TimesTen does not store data from out-of-line columns contiguously with the row.
-
Populating data is slower because TimesTen generates more logging operations.
-
Deleting data is slower because TimesTen performs more reclaim and logging operations. If you are deleting a large number of rows (100,000 or more) consider using multiple smaller
DELETE FROMstatements, or theDELETE FIRSTclause. For more information, see Avoid Large DELETE Statements.
The maximum sizes of inline and out-of-line portions of a row are listed in tablesize Command in the Oracle TimesTen In-Memory Database ttIsql User's and Reference Guide.