Generalmente, cuanto menos espacio, mejor, ya que cuantas más filas puedan caber en una Página de E/S signle 8k en el disco (o en la memoria), se requieren menos E/S para buscar y/o recuperar datos ... Esto es especialmente importante para columnas usadas en índices. Sin embargo, si su máquina es, por ejemplo, una máquina de 32 bits y ejecuta un sistema operativo de 32 bits, entonces el trozo de memoria más pequeño que se puede direccionar independientemente es de 32 bits, así que si esta es la única columna en su tabla de 32 bits, entonces no importa porque cada fila completa de datos debe comenzar y terminar en un límite de 32 bits, por lo que cada fila debe ser un múltiplo de 32 bits de ancho.
es decir, si su mesa era
(tinyint Cola, ColB Int, ColC DateTime) MyTable A continuación, cada fila se toman serán desperdiciados 16 bytes (128 bits) y 24 bits.
Por otro lado, si tiene 4 columnas que podrían ser tinyInts, use eso porque el servidor SQL pondrá cuatro de ellas en una ubicación de almacenamiento de 32 bits en el disco (sin importar en qué orden las declare) .
Los mismos principios se aplican al servidor SQL de 64 bits que se ejecuta en OS/CPUbB de 64 bits
+1 Sí, el menor tamaño de almacenamiento * suponiendo * que el tipo de datos puede almacenar los datos que necesita. Es decir. no use tinyint si a veces necesita valores enteros mayores que 255. Parece obvio, pero debe decirse. :-) –