KOMPRESUJ (Transact-SQL)

Dotyczy: SQL Server 2016 (13.x) i nowsze wersje usługi Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics— punkt końcowy analizy SQL w usłudze Microsoft FabricWarehouse wbazie danych Microsoft Fabric SQL Database w usłudze Microsoft Fabric

Ta funkcja kompresuje wyrażenie wejściowe przy użyciu algorytmu Gzip . Funkcja zwraca tablicę bajtów typu varbinary(max).

Transact-SQL konwencje składni

Składnia

COMPRESS ( expression )

Arguments

wyrażenie

Wyrażenie jednego z następujących typów danych:

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

Aby uzyskać więcej informacji, zobacz Wyrażenia.

Typy zwracane

varbinary(max), reprezentując skompresowaną zawartość danych wejściowych.

Uwagi

Skompresowane dane nie mogą być indeksowane.

Funkcja COMPRESS kompresuje dane wyrażenia wejściowego. Aby skompresować tę funkcję, należy wywołać tę funkcję dla każdej sekcji danych. Aby uzyskać więcej informacji na temat automatycznej kompresji danych podczas przechowywania na poziomie wiersza lub strony, zobacz Kompresja danych.

Przykłady

A. Kompresuj dane podczas wstawiania tabeli

W tym przykładzie pokazano, jak skompresować dane wstawione do tabeli:

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. Archiwizowanie skompresowanej wersji usuniętych wierszy

Ta instrukcja najpierw usuwa stare rekordy zawodników z player tabeli. Aby zaoszczędzić miejsce, następnie przechowuje rekordy w inactivePlayer tabeli w formacie skompresowanym.

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