次の方法で共有


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) 型のバイト配列を返します。

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

B. 削除された行の圧縮バージョンをアーカイブする

次のステートメントは、まず player テーブルから古いプレーヤー レコードを削除します。 次に、領域を節約するために、レコードを圧縮形式で inactivePlayer テーブルに格納します。

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

関連項目