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);

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