Teradata 简明教程

Teradata - Compression

压缩用于减少表格使用的存储空间。在 Teradata 中,压缩可以压缩 255 个不同的值,包括 NULL。由于存储减少,因此 Teradata 可以在一个块中存储更多的记录。由于每个 I/O 操作可以处理每个块中的更多行,因此这将改善查询响应时间。可以在创建表格时使用 CREATE TABLE 添加压缩,或在创建表格后使用 ALTER TABLE 命令添加压缩。

Limitations

  1. 每列最多能压缩 255 个值。

  2. 主索引列不能压缩。

  3. 不稳定表也不能压缩。

Multi-Value Compression (MVC)

下表将字段 DepatmentNo 压缩为值 1、2 和 3。当压缩应用于某一列时,该列的值不会与该行存储在一起。而是这些值存储在每个 AMP 的表头中,并且只添加表示值到行中的存在位。

CREATE SET TABLE employee (
   EmployeeNo integer,
   FirstName CHAR(30),
   LastName CHAR(30),
   BirthDate DATE FORMAT 'YYYY-MM-DD-',
   JoinedDate DATE FORMAT 'YYYY-MM-DD-',
   employee_gender CHAR(1),
   DepartmentNo CHAR(02) COMPRESS(1,2,3)
)
UNIQUE PRIMARY INDEX(EmployeeNo);

多值压缩可用于处理包含有限值的大表中的列。