MSSQL Server Backup Compression Teknolojileri ve Algoritmaları

SQL Server’da yedek sıkıştırma dünyası, verinin boyutu ve sunucu kaynaklarının (CPU) kullanımı arasında hassas bir denge kurma sanatıdır. SQL Server’ın geçmişten geleceğe kullandığı algoritmaları ve yeni nesil ZSTD teknolojisini detaylıca inceleyelim.

SQL Server, verileri sıkıştırırken hangi teknolojileri kullandığını derinlemesine dökümante etmese de, temel prensip LZ (Lempel-Ziv) tabanlı veri farkı sıkıştırmasıdır. Bu yapı, verinin içindeki tekrarları bulan Pattern Matching (Desen Eşleştirme) ve ardışık verileri sayan Run-Length Encoding yöntemlerini birleştirir.

Ola Hallengren’da sıkıştırma algoritmalarını görebilirsiniz.

Standart Algoritma: MS_XPRESS

SQL Server 2008’den beri hayatımızda olan ve bugüne kadar standart olarak kullanılan temel algoritmadır.

  • LZ77 ve Deflate benzeri bir yapıyı kullanır. Veri sayfaları içindeki tekrarlanan karakter dizilerini bulur ve bunları daha kısa referanslarla değiştirir.
  • Çok hızlıdır ve CPU’yu minimum düzeyde yorar. Ancak sıkıştırma oranı, modern algoritmalar kadar agresif değildir.

Not: Günümüzde mevcut SQL Server yedeklerimizin büyük bir çoğunluğu halen MS_XPRESS algoritmasıyla alınmaktadır.

Yeni Nesil Devrim: ZSTD (Zstandard) Algoritması

SQL Server 2025 ile birlikte gelen en büyük yeniliklerden biri, Facebook (Meta) tarafından geliştirilen ZSTD algoritmasının yerleşik olarak desteklenmesidir. Özellikle “Big Data” (Büyük Veri) merkezlerinde disk alanı ve hız dengesini değiştirmek için tasarlanmıştır.

  • MS_XPRESS’e göre yedekleri %20-25 bandında daha hızlı sıkıştırabilmektedir.
  • Bu hız ve sıkıştırma artışına rağmen, CPU üzerindeki ek yük sadece %2-3 seviyelerindedir. Bu, modern işlemciler için ihmal edilebilir bir maliyettir.
  • Büyük veri merkezlerinde hem performanslı yedek alımı hem de ciddi disk tasarrufu sağlar.

ZSTD algoritması, ihtiyaca göre üç farklı seviyede yapılandırılabilir. Her seviye, CPU kullanımı ile disk tasarrufu arasında farklı bir nokta belirler:

Seviye Karşılık Gelen PerformansSıkıştırma Oranı
LOWMS_XPRESS ile hemen hemen aynı performansı ve sıkıştırmayı sunar.Standart
MEDIUMOrta seviyeli bir CPU yükü ile yaklaşık %10-12 bandında ek kazanç sağlar.Orta
HIGHEn agresif seviyedir. %20-25 seviyesinde daha fazla sıkıştırma yaparak diskte devasa yer açar.En Yüksek

SQL Server 2025 ve sonrasında, yedeğinizi en yüksek performans ve sıkıştırma ile almak için T-SQL komutunuza ALGORITHM ve LEVEL parametrelerini eklemeniz yeterlidir:

BACKUP DATABASE [DB_Name]
TO DISK = 'D:\Backups\DB_Name_ZSTD.bak'
WITH COMPRESSION (ALGORITHM = ZSTD, LEVEL = HIGH), 
STATS = 10;

Neden ZSTD, Özellikle şifrelenmemiş (Non-TDE) büyük veritabanlarında, MS_XPRESS’in tıkandığı noktalarda ZSTD HIGH seviyesi, veriyi daha derinlemesine analiz eder. LZ tabanlı yapısını daha modern sözlükleme yöntemleriyle birleştirdiği için “Big Data” ortamlarının yeni standart adayıdır.

Bugüne kadar kullandığımız MS_XPRESS, düşük CPU yüküyle hızlı çözümler sunarken; SQL Server 2025 ile gelen ZSTD HIGH, çok az bir CPU maliyeti karşılığında hem zaman hem de depolama tarafında bize çağ atlatıyor.

QAT_DEFLATE (Intel QuickAssist Technology)

Eğer sunucunuzda Intel’in QAT destekli bir işlemcisi veya kartı varsa, sıkıştırma işlemini ana işlemciden (CPU) alıp bu özel donanıma devreder. Backup sırasında CPU kullanımınız neredeyse hiç artmaz ve yedekleme işlemi çok daha hızlı biter.

Not: Eğer AlwaysOn yapındaki bu sunucularda SQL Server 2022 kullanıyorsan, özellikle ZSTD kullanmak log shipping veya yedek transferi trafiğini ciddi oranda azaltabilir.

“Kim zerre kadar iyilik yapmışsa onu görür.”Zilzal Suresi; 7. Ayet

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir