SQL Server BIGINT или DECIMAL (18,0) для первичного ключа

У нас есть база данных SQL Server 2005, для которой мы хотим улучшить производительность массового удаления / вставки / выбора, и я заметил, что в ней используется decimal (18,0) для его первичных ключей. Я понимаю, что это даст нам намного больше значений, чем bigint , но я надеялся, что это может быть быстрая победа и, по моим расчетам, прослужит нам многие миллионы лет роста.

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

Есть ли другая причина, по которой bigint может работать медленнее, или мне следует придерживаться decimal (18,0) ?

11
задан marc_s 27 July 2011 в 05:00
поделиться