Estaba hurgando en SSMS y noté que el "tamaño" de mis INTcolumnas era de 4 bytes (esperado) pero me sorprendió un poco ver que mis BITcolumnas eran un byte completo.
¿Entendí mal lo que estaba mirando?
sql-server
datatypes
Nate
fuente
fuente

Respuestas:
¿Cuántas columnas de bits ha definido en la tabla? Encontré esto en MSDN, dice que las columnas de 8 bits o menos se almacenan como un byte.
http://msdn.microsoft.com/en-us/library/ms177603.aspx
fuente
Sí.
Si solo tiene una
bitcolumna en la tabla, entonces el almacenamiento utiliza unbyteperobitse pueden almacenar hasta 8 columnas en el mismo byte, por lo que las siguientes 7 son "libres" a ese respecto.También hay una necesidad de almacenamiento de 1 bit por columna para
NULL_BITMAP(nuevamente redondeado al siguiente byte). En las páginas de datos, esto contiene unbitpara todas las columnas, independientemente de si lo permiten o noNULL(con la excepción de las columnas anulables que se agregan más tarde ya que los metadatos solo cambian a través deALTER TABLEdonde la fila aún no se ha actualizado)fuente
BITusa un byte por fila, pero puede empaquetar hasta 8BITcampos en ese almacenamiento de byte.Entonces, el primer campo cuesta un byte, ¡pero los siguientes siete son gratis !
fuente