COMPRESS (Transact-SQL)
適用対象: SQL Server 2016 (13.x) 以降 Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Microsoft Fabric の SQL 分析エンドポイント Microsoft Fabric のウェアハウス
この関数により、Gzip アルゴリズムを使用して、入力式が圧縮されます。 この関数は varbinary (max) 型のバイト配列を返します。
構文
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)
);
B. 削除された行の圧縮バージョンをアーカイブする
次のステートメントは、まず player
テーブルから古いプレーヤー レコードを削除します。 次に、領域を節約するために、レコードを圧縮形式で inactivePlayer
テーブルに格納します。
DELETE
FROM player
OUTPUT deleted.id,
deleted.name,
deleted.surname,
deleted.datemodifier,
COMPRESS(deleted.info)
INTO dbo.inactivePlayers
WHERE datemodified < @startOfYear;