Compression is useful to free up additional disk space, but it may or may not enhance performance depending on the type of compression used, the workload, the frequency of data access, and the system capabilities. Compression generally affects performance as follows:
- They cycle of decompressing and recompressing required to access and store data may significantly increase CPU usage compared to uncompressed data.
- Storing data in dense, compressed form may reduce I/O requirements.
For details about compression methods, see Database Design.
Multivalue Compression (MVC)
MVC compresses recurring values within a column into a single value in the table header.
MVC enhances the performance of high data volume applications, like call record detail and click-stream data, and provides significant performance improvement for general ad hoc workloads and full-table scan applications
Smaller physical row size results in less data blocks and fewer I/Os and improved overall performance, depending upon amount of compression achieved.
Select and delete operations show a proportionate improvement in all cases. Inserts and updates show mixed results. The load utilities benefit from the compressed values.
Algorithmic Compression (ALC)
- Teradata-supplied UDFs to compress various types of character data
- The ability to create custom UDF algorithms
Teradata-standard ALC UDFs tend to reduce I/O, but can increase CPU usage. For information on the compression/decompression functions, see SQL Functions, Operators, Expressions, and Predicates.
BLC compresses data at the data block level.
Because BLC is CPU-intensive, consider the CPU capabilities of the particular Teradata Database platform when using BLC.
When using BLC on the Teradata appliance systems with very high CPU capabilities, you can:
- Apply BLC to all allowable types of data.
- Load and access data at any time because there is enough available CPU to frequently decompress data
When using BLC on other platforms with less CPU capacity, you may need to:
- Load tables during off-peak hours.
- Limit access to compressed tables during critical throughput periods.
Some operations (including queries, insert/updates, ARC dump/restores, reconfiguration, and CheckTable) can use considerably more CPU while operating on compressed tables. Unless the system is very CPU rich, these operations can impact other workloads and lengthen elapsed response times.