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