Терадата - сжатие

Сжатие используется для уменьшения объема памяти, используемого таблицами. В Teradata сжатие может сжимать до 255 различных значений, включая NULL. Поскольку объем хранилища уменьшен, Teradata может хранить больше записей в блоке. Это приводит к сокращению времени ответа на запрос, поскольку любая операция ввода-вывода может обрабатывать больше строк на блок. Сжатие можно добавить при создании таблицы с помощью 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);

Сжатие с несколькими значениями можно использовать, если в большой таблице есть столбец с конечными значениями.