压缩用于减少表使用的存储空间.在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);
当具有有限值的大表中的列时,可以使用多值压缩.