Netezza internal data types
IBM® Netezza® supports three internal data types: rowid, transaction ID, and dataslice.
|Type||Column name||Value||Disk usage|
|rowid||rowid||100,000 - 9,223,372,036,854,775,807||8 bytes|
|1024 - 9,223,372,036,854,775,807||8 bytes|
|dataslice||datasliceid||1 - 2,147,483,647||4 bytes|
- Identifies a specific record in the database and is guaranteed to be unique, but not necessarily sequential within a table. At installation, the initial rowid value is 100,000. The Netezza host assigns a range of sequential rowids to each SPU. When you insert records, the system assigns them rowids. When the initial allotment of rowids is depleted, the system assigns another range, which is why the rowids cannot be sequential.
- transaction ID
- Identifies the transaction ID that created the record (createxid)
and the transaction ID that deleted the record (deletexid), which
is 0 if the record is not deleted. When the system updates a record,
it updates the deletexid on the original row with the current transaction
ID, inserts a record with the updated value, and preserves the rowid.
An xid is an 8-byte integer of which 48 bits are significant. At installation, the initial xid value is 1024. The size of the xid allows for over 100 trillion (100,000,000,000,000) transaction IDs.
- Identifies that portion of the database that is stored on each
disk. At installation, the system is divided into a logical number
of data slices. When the system creates a record, it assigns it to
a logical data slice (and thus a physical disk) based on its distribution
key. Although the system dynamically generates datasliceid values,
it does not store them with each individual record. You can use the datasliceid keyword in a query to identify which data slice the records are coming from. For example:
SELECT DATASLICEID, name FROM employee_table;
For more information about data slices, see the IBM Netezza System Administrator’s Guide.