У нас есть база данных SQL Server 2005, для которой мы хотим улучшить производительность массового удаления / вставки / выбора, и я заметил, что в ней используется decimal (18,0)
для его первичных ключей. Я понимаю, что это даст нам намного больше значений, чем bigint
, но я надеялся, что это может быть быстрая победа и, по моим расчетам, прослужит нам многие миллионы лет роста.
Я вижу в .net документах десятичные дроби занимают 16 байтов вместо 8, требуемых longs, но в SQL Server похоже, что bigint
занимает 8 байтов , но десятичный (18,0)
занимает только 5 байтов - как также видно из , выберите ДАННЫЕ ДНЯ (макс. (Id)) из таблицы
. Это правильно?
Есть ли другая причина, по которой bigint
может работать медленнее, или мне следует придерживаться decimal (18,0)
?