SQL Server 2016 – GZIP COMPRESS ve DECOMPRESS Fonksiyonları

COMPRESS ve DECOMPRESS SQL Server 2016 ile birlikte gelen yeni fonksiyonlardır. Fonksiyon isimlerinde de anlaşılacağı üzere sıkıştırma ve çözme (sıkıştırılan veriyi açma) fonksiyonlarıdır. Bu makalede her iki fonksiyonun kullanımı inceleyeceğiz.

COMPRESS fonksiyonu kendisine verilen veriyi GZIP algoritması ile sıkıştırarak geriye binary veri türü olan Varbinary(max) veri türü dönüşü yapmaktadır.

DECOMPRESS fonksiyonu GZIP algoritması ile sıkıştırılmış veriyi çözmek/açmak için kullanılır. GZIP algoritması ile sıkıştırılan veri DECOMPRESS fonksiyonu ile geri dönüştürme işlemi sonrası yine COMPRESS fonksiyonunda olduğu gibi Varbinary(max) veri türü dönüşü yapmaktadır. DECOMPRESS edilen veriyi ilk haline, sıkıştırılmadan önceki haline dönüştürmek için “explicit conversion“,”Cast” işlemi yapmamız gerekiyor.
COMPRESS ve DECOMPRESS fonksiyonları standart GZIP algoritmasını kullanmaktadır. Uygulama katmanında veriyi sıkıştırıp SQL Server’a gönderebilir, Sql Server 2016 üzerinde sıkıştırılan veri direk veritabanına yazılabilir veya veri decompress edilip veritabanına yazılabilir. Aynı şekilde Uygulama katmanına sql server üzerinden gelen compress edilmiş veri uygulama katmanı üzerinden decompress edilebilir.

Şimdi örnekler üzerinden bu iki fonksiyonun kullanımına geçelim.

[sql]

SELECT COMPRESS(‘Mesut Güneş’)

[/sql]

sql_server_compress

Şimdi sıkıştırılan veriyi geri dönüştürmek için DECOMPRESS fonksiyonumuzu kullanalım.

[sql]

SELECT DECOMPRESS(0x1F8B0800000000000400F34D2D2E2D5170FF9397FA0F004F3025550B000000)

[/sql]

sql_server_Decompress

Sorgu sonucundan da anlaşılacağı gibi DECOMPRESS fonksiyonu da bize binary data döndürdü. Gerçek verimize ulaşmak için sorgu çıktısındaki Binary veriyi cast etmemiz gerekiyor.

[sql]

SELECT CAST(0x4D657375742047FC6E65FE AS VARCHAR(MAX))

[/sql]

sql_server_cast

Sorgu çıktısında görüldüğü üzere decompress fonksiyonundan gelen verimizi cast işlemin tabi tuttuktan sonra sıkıştırılmamış değerine ulaştık.

Şimdi bir örnek daha yapalım ve makalemizi bitirelim. Bu örnek sorguda tek Select ifadesinde hem Compress hem Decompress fonksiyonlarının kullanımına gözatalım.

[sql]

DECLARE @CompressValue VARCHAR(MAX) =’MESUT GÜNEŞ’

SELECT @CompressValue AS CompressValue,
COMPRESS(@CompressValue) AS CompressedValue,
DECOMPRESS(COMPRESS(@CompressValue)) AS DeCompressedValue,
CAST(DECOMPRESS(COMPRESS(@CompressValue)) AS VARCHAR(MAX)) AS CASTValue

[/sql]

all_selecct

 

Mesut Güneş

Selçuk Üniversitesi Bilgisayar programcılığı bölümünden mezun olduktan sonra birçok firmada Yazılım, İş zekası ve Veritabanı Uzmanı olarak çalıştım. Şuan Türkiye’nin en büyük şirketlerinden biri olan Doğan Online’da Veritabanı Yöneticisi olarak çalışıyorum.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.