Calcular tamaño de fila

Para cada fila de cada tabla, hay una sobrecarga fija de 24 bytes de rowid, createxid y deletexid. Si tiene columnas que admiten nulos, se necesita un vector de nulos y es N/8 bytes donde N es el número de columnas del registro. El sistema redondea el tamaño de este encabezad a un múltiplo de 4 bytes.

Además, el sistema añade una cabecera de registro de 4 bytes si algo de lo siguiente es verdadero:
  • Columna de tipo VARCHAR
  • Columna de tipo CHAR donde la longitud es mayor de 16 (almacenado internamente como VARCHAR)
  • Columna de tipo NCHAR
  • Columna de tipo NVARCHAR
  • Columna de tipo JSON

    Utilizando la codificación UTF-8, cada punto de unidad Unicode puede requerir 1 - 4 bytes de almacenamiento. Una serie de 10 caracteres requiere 10 bytes de almacenamiento si es ASCII y hasta 20 bytes si es Latin, o hasta 40 bytes si es Kanji.

La única vez que un registro no contiene cabecera es si todas las columnas se definen como NOT NULL, no hay tipos de caracteres mayores de 16 bytes y no hay tipos de datos de caracteres variables.

La tabla siguiente describe el almacenamiento de cabecera.
Tabla 1. Calcular tamaño de fila
Crear XID Suprimir XID ID de fila Vector de nulos Longitud de registro Column_1 …Columna_n
8 bytes 8 bytes 8 bytes N/8 bytes 4 bytes Número de bytes