Получавате този диапазон с bigint:
-2^63 to 2^63-1
also known as roughly:
-9.2 x 10^18 to 9.2 x 10^18
Получавате този диапазон с decimal(18,0) :
-10^18 to 10^18
Decimal:Байтове за съхранение на точност
Precision Storage Bytes
1-9: 5
10-19: 9
20-28: 13
29-38: 17
Цели числа и байтове за съхранение
integer type Storage Bytes
bigint 8
int 4
smallint 2
tinyint 1
Мисли
Двата примера, публикувани във вашия въпрос, всъщност дават почти същото количество уникални стойности.
Освен това няма да видите значителна промяна в производителността, независимо от вашия избор, но ще видите промяна в ефективността за другите програмисти в екипа, ако започнете да използвате десетични знаци, когато програмистите очакват цяло число. Това е второстепенна точка.
За да разрешите конкретния си проблем, ако искате по-голям диапазон, използвайте Decimal(38,0). Това ви дава:
-10^38 to 10^38
Ако се притеснявате за скоростта, използвайте минималната прецизност, която ще продължи целия живот на вашия софтуер.
Ако не измервате времето в наносекунди, тогава изберете опцията, която ще пасне най-добре на начина на мислене на вашите програмисти и желанието ви да имате много дълъг набор от числа.
Референции