Satır sıkıştırma uygulama
Bu konuda özetler nasıl Veritabanı Altyapısı uygulayan satır sıkıştırması.Bu Özet, verileriniz için gerekli depolama alanı planlamanıza yardımcı olması için temel bilgileri sağlar.
Etkinleştirme sıkıştırma, yalnızca bir veri türü ancak kendi sözdizimi veya semantik ile ilişkili verileri fiziksel depolama alanı alanı biçimini değiştirir.Bir veya daha fazla tablo sıkıştırma için 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ü azaltır.Bu meta veriler sütunları, uzunlukları ve uzaklıklar hakkında bilgiler verilmektedir.Bazı durumlarda, meta veriler yükü eski depolama biçimi büyük olabilir.
Sayısal türleri için değişken uzunlukta depolama biçimini kullanır (örneğin integer, decimal, ve float) ve üzerinde sayısal tabanlı türleri (örneğin datetime ve money).
Boş karakterler depolayarak değil, değişken uzunlukta biçimi kullanarak sabit karakter dizeleri depolar.
Not
null ve 0 değerleri tüm veri türleri arasında en iyi duruma getirilmiş 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ürleri nasıl etkilediğini tanımlar SQL Server.tablo sayfa sıkıştırması kullanılarak elde edilebilir tasarruf içermez.
Veri türü |
Depolama etkilenir mi? |
Açıklama |
---|---|---|
tinyint |
Hayır |
gereken en az depolama 1 bayttır. |
smallint |
Evet |
Yalnızca 1 bayt değeri 1 bayt sığıyorsa, kullanılacak. |
int |
Evet |
Gerekli olan bayt kullanır.Örneğin, bir değer 1 bayt depolanabilir, depolama yalnızca 1 bayt ele. |
bigint |
Evet |
Gerekli olan bayt kullanır.Örneğin, bir değer 1 bayt depolanabilir, depolama yalnızca 1 bayt ele. |
decimal |
Evet |
Bu depolama vardecimal depolama biçimi olarak tam olarak aynıdır.Daha fazla bilgi için bkz: Değişken uzunlukta ondalık veri saklama. |
numeric |
Evet |
Bu depolama vardecimal depolama biçimi olarak tam olarak aynıdır.Daha fazla bilgi için bkz: Değişken uzunlukta ondalık veri saklama. |
bit |
Evet |
meta veriler yükü, bunun için 4 bit getirir. |
smallmoney |
Evet |
4 Baytlık bir tamsayı kullanarak tamsayı veri gösterimi kullanır.Para birimi değeri 10000 ile çarpılır ve elde edilen tamsayı değeri herhangi bir rakam ondalık ayırıcıdan sonra kaldırarak saklanır.Bu tür bir depolama iyileştirme için tamsayı türleri için benzer sahiptir. |
money |
Evet |
8 Baytlık bir tamsayı kullanarak tamsayı veri gösterimi kullanır.Para birimi değeri 10000 ile çarpılır ve elde edilen tamsayı değeri herhangi bir rakam ondalık ayırıcıdan sonra kaldırarak saklanır.Bu tür bir daha büyük olan aralık 'den smallmoney.Bu tür bir depolama iyileştirme için tamsayı türleri için benzer sahiptir. |
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 |
İki 2 baytlık tamsayı kullanarak tamsayı veri gösterimi kullanır.Tarih 2 bayt kazanır.1/1/1901 Beri geçen gün sayısıdır.Bu, 1902 ' başlayarak 2 bayt gerektirir.Bu nedenle, ondan sonra hiçbir kazancı yoktur. Saat gece yarısından sonra geçen dakika sayısıdır.İkinci bayt kullanmak biraz 4 am zaman değerleri başlatın. Bir smalldatetime sadece tarih ifade etmesi için kullanılır (bir ortak durum), saat 0.0 olur.Sıkıştırma, 2 bayt satır sıkıştırması için en önemli byte biçiminde saat depolayarak kaydeder. |
datetime |
Evet |
İki 4 baytlık tamsayı kullanarak tamsayı veri gösterimi kullanır.Tamsayı değeri temel tarih 1/1/1900 ile gün sayısını temsil eder.İlk 2 bayt 2079 yıla kadar temsil edebilir.Noktayı kadar sıkıştırma her zaman burada 2 bayt kaydedebilirsiniz.Tamsayı değeri her 3.33 milisaniye olarak gösterir.Sıkıştırma, ilk 2 bayt ilk beş dakika içinde tamamen bitirirse ve 4 pm sonra dördüncü baytı gerekiyor.Bu nedenle, sıkıştırma 4 pm yalnızca 1 bayt kaydedebilirsiniz.Zaman datetime sıkıştırılmış gibi herhangi bir diğer tamsayı, sıkıştırma kazandırır 2 bayt cinsinden tarih. |
date |
Hayır |
3 Bayt kullanarak tamsayı veri gösterimi kullanır.Bu, 1/1/0001 tarih temsil eder.Çağdaş tarih için tüm 3 bayt satır sıkıştırması kullanır.Bu, hiçbir tasarrufu sağlıyor. |
time |
Hayır |
3-6 Bayt kullanarak tamsayı veri gösterimi kullanır.0-3-6 Bayt alabileceği 9 ile başlayan çeşitli Precision bilgisayarlar vardır.Sıkıştırılmış alanı aşağıdaki gibi kullanılır:
Satır sıkıştırma için depolama birimindeki değişiklik yoktur.Genel olarak, değil ne kadar tasarruf sıkıştırmaktan beklenen time veri türü. |
datetime2 |
Evet |
6-9 Bayt kullanarak tamsayı veri gösterimi kullanır.İlk 4 bayt tarih gösterir.saat tarafından alınan bayt sayısı belirtilen süre duyarlığı'bağlı olacaktır. Tamsayı değeri 1/1/0001 beri geçen gün sayısı ile 12/31/9999 arasında bir üst sınırını gösterir.2005 Yılında tarih ifade etmesi için sıkıştırma 3 bayt alır. Çeşitli saat Precision bilgisayarlar için 2 ile 4 bayt sağladığından, zamanında hiçbir tasarrufu vardır.Bu nedenle, bir saniyelik saat kesinlik için ikinci bayt 255 saniye sonra geçen süre, 2 bayt sıkıştırma kullanır. |
datetimeoffset |
Evet |
Benzer datetime2, 2 saat dilimi biçimini (ss: dd) baytını olmasıdır. Gibi datetime2, sıkıştırma kaydedebilirsiniz 2 bayt. Saat dilimi değerlerini, çoğu zaman için 0 mm değeri olabilir.Bu nedenle, sıkıştırma, belki 1 bayt kaydedebilirsiniz. Satır sıkıştırma için depolama hiçbir değişiklik yoktur. |
char |
Evet |
Sonunda doldurma karakterleri kaldırılır.Dikkat Veritabanı Altyapısı aynı ekler doldurma karakter kullanılan harmanlamayı olsun. |
varchar |
Hayır |
Herhangi bir etki oluşturmaz. |
text |
Hayır |
Herhangi bir etki oluşturmaz. |
nchar |
Evet |
Metin, sıkıştırılmış metin boyutu geçerli metin boyutu küçükse standart sıkıştırma düzeni Unicode (scsu) algoritması kullanılarak sıkıştırılır. |
nvarchar |
Evet |
Metin, sıkıştırılmış metin boyutu geçerli metin boyutu küçükse standart sıkıştırma düzeni Unicode (scsu) algoritması kullanılarak sıkıştırılır.
Not
Sıkıştırma desteklenmez nvarchar(max).
|
ntext |
Hayır |
Herhangi bir etki oluşturmaz. |
binary |
Evet |
Ardarda sıfırları kaldırılır. |
varbinary |
Hayır |
Herhangi bir etki oluşturmaz. |
image |
Hayır |
Herhangi bir etki oluşturmaz. |
cursor |
Hayır |
Herhangi bir etki oluşturmaz. |
timestamp / rowversion |
Evet |
8 Bayt kullanarak tamsayı veri gösterimi kullanır.Her veritabanı için tutulan bir zaman damgası sayacı vardır ve değeri 0'dan başlar.Herhangi bir tamsayı değer gibi sıkıştırılabilir. |
sql_variant |
Hayır |
Herhangi bir etki oluşturmaz. |
uniqueidentifier |
Hayır |
Herhangi bir etki oluşturmaz. |
table |
Hayır |
Herhangi bir etki oluşturmaz. |
xml |
Hayır |
Herhangi bir etki oluşturmaz. |
Kullanıcı tanımlı türler |
Hayır |
Bu dahili olarak temsil edilen varbinary. |
FILESTREAM |
Hayır |
Bu dahili olarak temsil edilen varbinary. |
Ayrıca bkz.