Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 173|Yanıt: 0

[İpucu] SQL Server veritabanı tablo satır sıkıştırma ve sayfa sıkıştırma

[Bağlantıyı kopyala]
Yayınlandı 9.01.2026 11:20:06 | | | |
Gereksinimler: SQL Server veritabanında, çok büyük bir disk alanı, belki yüzlerce GB kaplayan bir tablo (örneğin, log tablosu, talep günlük tablosu) vardır, tablo alanı kullanımını nasıl azaltabiliriz? Veri sıkıştırması (alan tasarrufu) yüksek tekrarlayan metinler (örneğin, HTML, JSON, günlükler) için etkinleştirilebilir.

ROW sıkıştırma

Sıkıştırma verilerin fiziksel depolamasını değiştirir, ancak verinin mantıksal yapısını değiştirmez. Hat sıkıştırma süreci:

Her sütunun veri tipini belirleyin ve onu değişken uzunluğa dönüştürün
Son olarak, depolama alanı taleplerinin miktarı gerçek talebe indirgenir
Sıkıştırmadan sonra, her sayfadaki depolanan veri miktarı artır
Sıkıştırmadan sonra meta veri miktarını azaltın
Örneğin, bir sütunun veri tipi smallint ise, sistem varsayılan olarak 2 bayt tahsis eder
Ancak gerçekte, sadece 1 bayt alan kullanılır ve tabloda sıkıştırma etkinleştirilirse, talep üzerine tahsis edilebilir

SAYFA sıkıştırma

Sayfa sıkıştırma, satır sıkıştırmayı artırmak için ek işlemler gerçekleştirir
Ana işlemler: satır sıkıştırma, ön ek sıkıştırma, sözlük sıkıştırma

CPU tüketimi: PAGE sıkıştırma > satır sıkıştırma

Test

Yeni bir Users1 ve Users2 tabloları oluşturun, her ikisi de 100.000 veri parçası ekleyin ve sql betiği şu şekildedir:
Hepsi 3.27 MB olan tablo alanı doluluğunu görüntülemek için komut şöyledir:
Aşağıda gösterildiği gibi:



Users2 tablosunun sıkıştırma durumunu görüntülemek için komut şu şekildedir:
Aşağıda gösterildiği gibi:



sp_estimate_data_compression_savingsSatır, sayfa, sütun deposu, sütun deposu arşivleri veya XML sıkıştırması için tablo veya bölümleri etkinleştirdiğinizde elde edebileceğiniz tasarrufları tahmin edin. Komut şöyledir:
Çıktı şöyledir:
object_name schema_name index_id partition_number size_with_current_compression_setting(KB) size_with_requested_compression_setting(KB)        sample_size_with_current_compression_setting(KB) sample_size_with_requested_compression_setting(KB)
Users2 dbo 1 3368 1296 3448 1328

size_with_current_compression_setting (KB) 3368 KB Mevcut sıkıştırma ayarlarıyla indeks ≈ 3.29 MB yer kaplamaktadır
size_with_requested_compression_setting (KB) 1296 KB İstediğiniz yeni sıkıştırma yöntemini (örneğin PAGE veya ROW) etkinleştirirseniz tahmini ≈ 1.27 MB
Sayfa sıkıştırmasını çalıştırmak için komut şu şekildedir:
Etkilerin karşılaştırılması:Users2 tablosu sıkıştırmadan önce 3.27 MB, sıkıştırmadan sonra ise 1.23 MB'dır, aşağıdaki şekilde gösterildiği gibi:



Görselleştirme şöyledir:



Referans:

Bağlantı girişi görünür.
Bağlantı girişi görünür.
Bağlantı girişi görünür.




Önceki:Database soft deletion (tombod) alanı benzersizliği sorunu
Önümüzdeki:Windows Defender Credential Guard, kaydedilen kimlik bilgilerinin kullanımına izin vermiyor
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com