Aracılığıyla paylaş


Satır sıkıştırma uygulama

Bu konuda özetler nasılDatabase Engineuygulayan satır sıkıştırma.Bu Özet, verileriniz için gereken depolama alanı planlamanıza yardımcı olması için temel bilgiler sağlar.

Etkinleştirme sıkıştırma, yalnızca bir veri türü ancak değil, sözdizimi veya mantığı ile ilişkili verileri fiziksel depolama alanı alanı biçimini değiştirir.Sıkıştırma için bir veya birkaç tablo etkinleştirildiğinde uygulama değişikliği gerekli değildir.Yeni kayıt depolama biçimi aşağıdaki ana değişiklikler şunlardır:

  • Bu kayıtla ilişkili meta veriler yükünü azaltır.Bu meta veriler, sütun, uzunluk ve uzaklık hakkında bilgidir.Bazı durumlarda, meta veriler yükü eski depolama biçimi büyük olabilir.

  • Sayısal türler için değişken uzunlukta depolama biçimini kullanır (örneğin integer, decimal, ve float) sayısal dayalı türleri (örneğin datetimeve money).

  • Sabit karakter dizeleri boş karakterler depolama değişken uzunluklu biçimi kullanılarak depolanır.

Not

null ve tüm veri türleri üzerinde 0 değerleri getirilir ve hiçbir bayt gerçekleştirin.

Satır sıkıştırma depolama nasıl etkiler

Aşağıdaki tablo satır sıkıştırma, varolan türlerini nasıl etkileyeceğini açıklarSQL Server.Tabloyu sayfa sıkıştırması kullanılarak elde edilebilir tasarrufu içermez.

Veri türü

Depolama etkilenir mi?

Açıklama

tinyint

Hayır

1 bayt gerekli en az depolama olur.

smallint

Evet

Değer 1 bayt sığıyorsa, yalnızca 1 bayt kullanılır.

int

Evet

Yalnızca gerekli olan bayt kullanır.Örneğin, 1 bayt değeri saklanır, yalnızca 1 bayt depolama sürer.

bigint

Evet

Yalnızca gerekli olan bayt kullanır.Örneğin, 1 bayt değeri saklanır, yalnızca 1 bayt depolama sürer.

decimal

Evet

Bu depolama vardecimal depolama biçiminde tam olarak aynı olur.Daha fazla bilgi için bkz: Decimal veri değişken uzunluk depolama.

numeric

Evet

Bu depolama vardecimal depolama biçiminde tam olarak aynı olur.Daha fazla bilgi için bkz: Decimal veri değişken uzunluk depolama.

bit

Evet

Bu meta veriler ek yük için 4 bit getirir.

smallmoney

Evet

Tamsayı veri gösterimi kullanılarak 4 baytlık bir tamsayı kullanır.Para birimi değeri 10000 ile çarpılır ve elde edilen tamsayı, ondalık noktadan sonra bir basamak kaldırarak saklanır.Bu tür bir depolama iyileştirme tamsayı türleri için benzer vardır.

money

Evet

8-Bayt tamsayı kullanarak tamsayı veri gösterimi kullanır.Para birimi değeri 10000 ile çarpılır ve elde edilen tamsayı, ondalık noktadan sonra bir basamak kaldırarak saklanır.Bu tür olan daha büyük aralıksmallmoney.Bu tür bir depolama iyileştirme tamsayı türleri için benzer vardır.

float

Evet

Least significant bytes with zeros are not stored.float compression is applicable mostly for nonfractional values in mantissa.

real

Evet

Least significant bytes with zeros are not stored.real compression is applicable mostly for nonfractional values in mantissa.

smalldatetime

Hayır

Tamsayı veri gösterimi kullanılarak iki 2 baytlık tamsayı kullanır.Tarih 2 bayt kullanır.1/1/1901 İtibaren gün sayısıdır.Bu, 1902 ' başlayarak 2 bayt gerektirir.Bu nedenle, yok yok tasarruf noktayı sonra.

Saat gece yarısından itibaren dakika sayısıdır.İkinci bayt kullanmak, biraz sonra 4'de saat değerleri başlatın.

, Birsmalldatetimeyalnızca tarih ifade etmesi için kullanılır (bir ortak durum), 0.0 geldi.Sıkıştırma, 2 bayt satır sıkıştırma için en önemli bayt biçiminde saat depolayarak kaydeder.

datetime

Evet

Tamsayı veri gösterimi kullanılarak iki 4 baytlık tamsayı kullanır.Tamsayı değeri, 1/1/1900 temel tarih olan gün sayısını gösterir.İlk 2 bayt 2079 yıl kadar gösterebilir.Noktayı kadar sıkıştırma her zaman burada 2 bayt kaydedebilirsiniz.Her bir tamsayı değeri 3.33 milisaniye olarak gösterir.Sıkıştırma, ilk beş dakika içinde ilk 2 baytı exhausts ve 4 PM sonra dördüncü bayt gerekir.Bu nedenle, sıkıştırma, yalnızca 1 bayt 4 PM sonra kaydedebilirsiniz.Zamandatetimetüm diğer tamsayı olarak sıkıştırma kayıt tarih. 2 bayt gibi sıkıştırılmış

date

Hayır

Tamsayı veri gösterimi ile 3 bayt kullanır.Bu, 1/1/0001 tarih gösterir.Çağdaş tarih için 3 tüm baytlar satır sıkıştırma kullanır.Bu, hiçbir kazancı erişir.

time

Hayır

3-6 Bayt kullanarak tamsayı veri gösterimi kullanır.0-3-6 Bayt, 9 ile başlayan çeşitli precisions vardır.Sıkıştırılmış alanı aşağıdaki gibi kullanılır:

  • Duyarlılık = 0.Bayt = 3.Her bir tamsayı değeri ikinci temsil eder.Sıkıştırma, büyük olasılıkla 1 bayt kaydetme 2 bayt kullanarak 18 saate kadar gösterebilir.

  • Duyarlılık = 1.Bayt = 3.Her bir tamsayı değeri, 1/10 saniye temsil eder.Sıkıştırma, önce 2'de üçüncü bayt kullanır.Küçük tasarruf sonuçlanır.

  • Duyarlılık = 2.Bayt = 3.Önceki durumda, bu tasarruf sağlamak olası benzer.

  • Duyarlılık = 3.Bayt = 4.İlk 3 baytı 5 AM tarafından alındığı için küçük tasarruf erişir.

  • Duyarlılık = 4.Bayt = 4.İlk 3 baytı ilk 27 saniye olarak alınır.Hiçbir tasarrufu beklenir.

  • Duyarlılık = 5, bayt = 5.12-Öğleden sonra beşinci bayt kullanılır.

  • Duyarlılık = 6 ve 7, bayt = 5.Hiçbir tasarrufu erişir.

  • Duyarlılık = 8, bayt = 6.Altıncı bayt sonra 3'de kullanılacak.

Satır sıkıştırma için depolama birimindeki herhangi bir değişiklik yok.Genel olarak, değil ne kadar tasarruf sıkıştırmasını gereklitimeveri türü.

datetime2

Evet

Uses the integer data representation by using 6 to 9 bytes.İlk 4 bayt tarih gösterir.saat alınan bayt, belirtilen saat duyarlığı'bağlıdır.

12/31/9999'ın bir üst sınır olan 1/1/0001 itibaren gün sayısı tamsayı değerini gösterir.2005 Yılında tarih ifade etmesi için sıkıştırma 3 bayt alır.

Yok yok tasarruf zamanı çeşitli saat precisions için 2 ile 4 bayt verdiğinden.Bu nedenle, bir saniyelik saat kesinlik için sıkıştırma 2 bayt 255 saniye sonra ikinci bayt, bir saat için kullanır.

datetimeoffset

Evet

Benzerdatetime2, saat dilimi biçimini (ss: dd), 2 bayt olmasıdır.

Gibidatetime2sıkıştırma kaydedebilirsiniz 2 bayt.

Saat dilimi değerler için aa değeri genellikle 0 olabilir.Bu nedenle, sıkıştırma, büyük olasılıkla 1 bayt kaydedebilirsiniz.

Satır sıkıştırma için depolama birimindeki herhangi bir değişiklik vardır.

char

Evet

Sonunda doldurma karakterleri kaldırılır., NotDatabase Enginekullanılan alfabe düzeni ne olursa olsun aynı dolgu karakteri ekler.

varchar

Hayır

Etkisi.

text

Hayır

Etkisi.

nchar

Evet

Sonunda doldurma karakterleri kaldırılır., NotDatabase Enginekullanılan alfabe düzeni ne olursa olsun aynı dolgu karakteri ekler.

nvarchar

Hayır

Etkisi.

ntext

Hayır

Etkisi.

binary

Evet

Ardarda sıfırları kaldırılır.

varbinary

Hayır

Etkisi.

image

Hayır

Etkisi.

cursor

Hayır

Etkisi.

timestamp / rowversion

Evet

Tamsayı veri gösterimi ile 8 bayt kullanır.Her veritabanı için tutulan bir zaman damgası sayacı vardır ve değeri 0'dan başlar.Bu gibi başka bir tamsayı değer sıkıştırılabilir.

sql_variant

Hayır

Etkisi.

uniqueidentifier

Hayır

Etkisi.

table

Hayır

Etkisi.

xml

Hayır

Etkisi.

Kullanıcı tanımlı türler

Hayır

Bu dahili olarak temsilvarbinary.

FILESTREAM

Hayır

Bu dahili olarak temsilvarbinary.