COMPRESS (Transact-SQL)
Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure конечную точку аналитики SQL Azure Synapse Analytics в хранилище Microsoft Fabric в Microsoft Fabric
Эта функция сжимает входное выражение с помощью алгоритма Gzip . Она возвращает массив байтов типа varbinary(max).
Соглашения о синтаксисе Transact-SQL
Синтаксис
COMPRESS ( expression )
Аргументы
выражение
Выражение одного из следующих типов данных:
- binary(n)
- char(n)
- nchar(n)
- nvarchar(max)
- nvarchar(n)
- varbinary(max)
- varbinary(n)
- varchar(max)
- varchar(n)
Дополнительные сведения см. в статье Выражения (Transact-SQL).
Возвращаемый тип
varbinary(max), представляющий сжатое содержимое входных данных.
Замечания
Сжатые данные не могут быть индексированы.
Функция COMPRESS
сжимает данные, предоставленные во входном выражении. Ее необходимо вызывать для каждого раздела сжимаемых данных. Дополнительные сведения о автоматическом сжатие данных во время хранения на уровне строки или страницы см. в разделе "Сжатие данных".
Примеры
А. Сжатие данных во время вставки таблицы
В этом примере показано, как сжать данные, вставляемые в таблицу.
INSERT INTO player (
name,
surname,
info
)
VALUES (
N'Ovidiu',
N'Cracium',
COMPRESS(N'{"sport":"Tennis","age": 28,"rank":1,"points":15258, turn":17}')
);
INSERT INTO player (
name,
surname,
info
)
VALUES (
N'Michael',
N'Raheem',
COMPRESS(@info)
);
B. Архивация сжатой версии удаленных строк
Приведенная ниже инструкция сначала удаляет старые записи игроков из таблицы player
. Затем для экономии места она сохраняет их в сжатом виде в таблице inactivePlayer
.
DELETE
FROM player
OUTPUT deleted.id,
deleted.name,
deleted.surname,
deleted.datemodifier,
COMPRESS(deleted.info)
INTO dbo.inactivePlayers
WHERE datemodified < @startOfYear;