Archives of the TeradataForum
Message Posted: Wed, 30 May 2001 @ 16:00:03 GMT
Neil and Yonina,
Teradata compression is a fine grained compression - at the field or attribute level. There are several research papers identifying this finest level of granularity as the best method for databases when considering both capacity savings and query performance.
Teradata compression requires fore-knowledge of the most frequent value - this is also known as a two pass compression. The research shows that adaptive (one pass) compression is not effective for fine grained compression. The knowledge of the most frequent value can be discovered with an NCR utility called TeraCompress, which is available from NCR Professional Services.
Note that if column is nullable and Teradata compression is used on a non-NULL value then NULL will also be compressed for that row. Compressing a value in a column uses one presence bit in the row header. Compressing NULL for a column uses one presence bit. Each row header by default has 7 available presence bits, and if those are used up compressing multiple columns then more presence bytes are added to the row header.
DB2 for the mainframe supports a two pass compression with row level granularity. This is not as fine a granularity as supported by Teradata. The whole row must be decompressed when accessed by any query. Note that the DB2 support for row compression is confined to the mainframe because the mainframe has instruction set support (pass in a row pointer and a compression dictionary pointer and get back a pointer to a compressed row).
|Copyright 2016 - All Rights Reserved|
|Last Modified: 28 Jun 2020|