SSMS etrafında alay ve benim INT
sütun "boyutu" 4 bayt (beklenen) olduğunu fark ettim ama benim BIT
sütun bütün bir bayt olduğunu görmek için biraz şok oldu .
Neye baktığımı yanlış anladım mı?
SSMS etrafında alay ve benim INT
sütun "boyutu" 4 bayt (beklenen) olduğunu fark ettim ama benim BIT
sütun bütün bir bayt olduğunu görmek için biraz şok oldu .
Neye baktığımı yanlış anladım mı?
Yanıtlar:
Tabloda kaç bit sütunu tanımladınız? Bunu MSDN'de buldum, 8 veya daha az bit sütununun bir bayt olarak saklandığını söylüyor.
Evet.
bit
Tabloda yalnızca bir sütun varsa depolama alanı aynı baytta byte
8'e kadar bit
sütun kullanır , bu nedenle sonraki 7 bu açıdan "ücretsiz" olur.
Sütun depolama gereksinimi için 1 bit NULL_BITMAP
daha vardır (yine bir sonraki bayta yuvarlanır). Veri sayfalarında, bit
izin verip vermediklerine bakılmaksızın tüm sütunlar için bir içerir NULL
( daha sonra bir meta veri olarak eklenmiş nullable sütunlar hariç , yalnızca ALTER TABLE
satırın henüz güncellenmediği yerde değişir )