Teradata 压缩


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

限制


  • 每列只能压缩 255 个值。
  • 无法压缩主索引列。
  • 无法压缩易失性表。

多值压缩 (MVC)


下表针对值 1、2 和 3 压缩字段 DepatmentNo。当压缩应用于列时,该列的值不会与行一起存储。相反,这些值存储在每个 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);

当大型表中的列具有有限值时,可以使用多值压缩。