Tenemos una base de datos SQL Server 2005 para la cual queremos mejorar el rendimiento de la eliminación masiva/insertar/seleccionar y noto que usa decimal(18,0)
para sus claves principales. Entiendo que esto nos dará muchos más valores que bigint
, pero esperábamos que sea una ganancia rápida y que nos dure muchos millones de años de crecimiento según mis cálculos.SQL Server BIGINT o DECIMAL (18,0) para la clave principal
veo en .NET docs decimales toman 16 bytes en lugar de los 8 requeridos por los largos, pero en SQL Server se ve como bigint
take 8 bytes pero el decimal(18,0)
lleva sólo 5 bytes - como también se observa por select DATALENGTH(max(id)) from table
. ¿Es esto correcto?
¿Hay alguna otra razón por la cual bigint
podría ser más lento o debería seguir con decimal(18,0)
?
en su caso decimal (18,0) toma 9 bytes, no 5 –
La función DATALENGTH dice 5? –