KOMPRES (Transact-SQL)

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru Azure SQL DatabaseAzure SQL Managed InstanceTitik akhir analitik Azure Synapse AnalyticsSQL di Microsoft FabricWarehouse di Microsoft Fabric

Fungsi ini mengompresi ekspresi input, menggunakan algoritma Gzip . Fungsi mengembalikan array byte dari jenis varbinary(maks).

Konvensi sintaks transact-SQL

Sintaks

COMPRESS ( expression )

Argumen

expression

Ekspresi salah satu jenis data berikut:

  • biner(n)
  • char(n)
  • nchar(n)
  • nvarchar(maks)
  • nvarchar(n)
  • varbinary(max)
  • varbinary(n)
  • varchar(max)
  • varchar(n)

Untuk informasi selengkapnya, lihat Ekspresi (Transact-SQL).

Jenis Pengembalian

varbinary(max), mewakili konten input yang dikompresi.

Keterangan

Data terkompresi tidak dapat diindeks.

Fungsi ini COMPRESS memadatkan data ekspresi input. Anda harus memanggil fungsi ini untuk setiap bagian data untuk dikompresi. Untuk informasi selengkapnya tentang pemadatan data otomatis selama penyimpanan di tingkat baris atau halaman, lihat Kompresi Data.

Contoh

J. Memadatkan data selama penyisipan tabel

Contoh ini memperlihatkan cara memadatkan data yang disisipkan ke dalam tabel:

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. Mengarsipkan versi terkompresi dari baris yang dihapus

Pernyataan ini terlebih dahulu menghapus rekaman pemutar lama dari player tabel. Untuk menghemat ruang, kemudian menyimpan rekaman dalam inactivePlayer tabel, dalam format terkompresi.

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

Baca juga