SQL Server BIGINT o DECIMAL (18,0) para clave primaria
Tenemos una base de datos SQL Server 2005 para la que queremos mejorar el rendimiento de la eliminación / inserción / selección masiva y noto que usadecimal(18,0)
por sus claves principales. Entiendo que esto nos dará muchos más valores quebigint
pero esperaba que pudiera ser una victoria rápida y, según mis cálculos, debería durarnos muchos millones de años de crecimiento.
Veo en el .net docs decimales toman 16 bytes en lugar de los 8 requeridos por longs pero en SQL Server parecebigint
take 8 bytes pero eldecimal(18,0)
solo toma 5 bytes - como también visto porselect DATALENGTH(max(id)) from table
. ¿Es esto correcto
Hay alguna otra razonbigint
podría ser más lento o debería seguir condecimal(18,0)
?