COMPRESS (Transact-SQL)

Область применения:SQL Server 2016 (13.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics

Эта функция сжимает входное выражение с использованием алгоритма GZIP. Она возвращает массив байтов типа varbinary(max).

Topic link iconСинтаксические обозначения в Transact-SQL

Синтаксис

COMPRESS ( expression )  

Аргументы

expression
Объект

  • binary(n)
  • char(n)
  • nchar(n)
  • nvarchar(max)
  • nvarchar(n)
  • varbinary(max)
  • varbinary(n)
  • varchar(max)

или

  • varchar(n)

. Дополнительные сведения см. в статье Выражения (Transact-SQL).

Типы возвращаемых данных

varbinary(max), представляющие сжатое содержимое входного выражения.

Комментарии

Сжатые данные невозможно индексировать.

Функция COMPRESS сжимает данные, предоставленные во входном выражении. Ее необходимо вызывать для каждого раздела сжимаемых данных. Дополнительные сведения об автоматическом сжатии хранимых данных на уровне строк или страниц см. в статье Сжатие данных.

Примеры

A. Сжатие данных во время вставки в таблицу

В этом примере показано, как сжать данные, вставляемые в таблицу.

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

Б. Архивация сжатой версии удаленных строк

Приведенная ниже инструкция сначала удаляет старые записи игроков из таблицы player. Затем для экономии места она сохраняет их в сжатом виде в таблице inactivePlayer.

DELETE FROM player  
OUTPUT deleted.id, deleted.name, deleted.surname, deleted.datemodifier, COMPRESS(deleted.info)   
INTO dbo.inactivePlayers
WHERE datemodified < @startOfYear; 

См. также раздел

Строковые функции (Transact-SQL)
DECOMPRESS (Transact-SQL)