COMPRESS (Transact-SQL)
Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics SQL Analytics-Endpunkt in Microsoft Fabric Warehouse in Microsoft Fabric In Microsoft Fabric
Diese Funktion komprimiert den Eingabeausdruck mithilfe des Gzip-Algorithmus. Die Funktion gibt ein Bytearray vom Typ varbinary(max) zurück.
Transact-SQL-Syntaxkonventionen
Syntax
COMPRESS ( expression )
Argumente
expression
Ein Ausdruck mit einem der folgenden Datentypen:
- binary(n)
- char(n)
- nchar(n)
- nvarchar(max)
- nvarchar(n)
- varbinary(max)
- varbinary(n)
- varchar(max)
- varchar(n)
Weitere Informationen finden Sie unter Ausdrücke (Transact-SQL).
Rückgabetyp
varbinary(max), stellt den komprimierten Inhalt der Eingabe dar.
Bemerkungen
Komprimierte Daten können nicht indiziert werden.
Die COMPRESS
-Funktion komprimiert die Ausdrucksdaten der Eingabe. Sie müssen diese Funktion aufrufen, damit jeder Datenabschnitt komprimiert wird. Weitere Informationen zur automatischen Datenkomprimierung während der Speicherung auf Zeilen- oder Seitenebene finden Sie unter Datenkomprimierung.
Beispiele
A. Komprimieren von Daten während des Tabelleneinfügevorgangs
Dieses Beispiel zeigt, wie Daten aus einer Tabelle komprimiert werden können, die in einer Tabelle enthalten sind:
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. Archivieren einer komprimierten Version von gelöschten Zeilen
Diese Anweisung löscht zunächst ältere Spielerdaten aus der player
-Tabelle. Die Datensätze werden dann in der inactivePlayer
-Tabelle in einem komprimierten Format gespeichert, um Speicherplatz zu sparen.
DELETE
FROM player
OUTPUT deleted.id,
deleted.name,
deleted.surname,
deleted.datemodifier,
COMPRESS(deleted.info)
INTO dbo.inactivePlayers
WHERE datemodified < @startOfYear;