COMPRESS (Transact-SQL)COMPRESS (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ ЭТОЙ СТАТЬИ: даSQL Server (начиная с 2016)даБаза данных SQL AzureнетХранилище данных SQL AzureнетParallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL Server (starting with 2016)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Эта функция сжимает входное выражение с использованием алгоритма GZIP.This function compresses the input expression, using the GZIP algorithm. Она возвращает массив байтов типа varbinary(max).The function returns a byte array of type varbinary(max).

Значок ссылки на раздел Синтаксические обозначения в Transact-SQLTopic link icon Transact-SQL Syntax Conventions

СинтаксисSyntax

COMPRESS ( expression )  

АргументыArguments

expressionexpression
ОбъектA

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

или диспетчер конфигурации службor

  • varchar(n)varchar(n)

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

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

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

RemarksRemarks

Сжатые данные невозможно индексировать.Compressed data cannot be indexed.

Функция COMPRESS сжимает данные, предоставленные во входном выражении.The COMPRESS function compresses the input expression data. Ее необходимо вызывать для каждого раздела сжимаемых данных.You must invoke this function for each data section to compress. Дополнительные сведения об автоматическом сжатии хранимых данных на уровне строк или страниц см. в статье Сжатие данных.See Data Compression for more information about automatic data compression during storage at the row or page level.

ПримерыExamples

A.A. Сжатие данных во время вставки в таблицуCompress Data During the Table Insert

В этом примере показано, как сжать данные, вставляемые в таблицу.This example shows how to compress data inserted into a table:

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. Архивация сжатой версии удаленных строкArchive compressed version of deleted rows

Приведенная ниже инструкция сначала удаляет старые записи игроков из таблицы player.This statement first deletes old player records from the player table. Затем для экономии места она сохраняет их в сжатом виде в таблице inactivePlayer.To save space, it then stores the records in the inactivePlayer table, in a compressed format.

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

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

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