Teradata 压缩
压缩用于减少表使用的存储。在 Teradata 中,压缩最多可以压缩 255 个不同的值,包括 NULL。由于存储量减少,Teradata 可以在一个块中存储更多记录。这会缩短查询响应时间,因为任何 I/O 操作都可以在每个块中处理更多行。可以在使用 CREATE TABLE 创建表时或使用 ALTER TABLE 命令创建表后添加压缩。
限制
每列只能压缩 255 个值。
主索引列无法压缩。
无法压缩易失性表。
多值压缩 (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);
当您在大表中有一列具有有限值时,可以使用多值压缩。