Otrzymujesz ten zakres z bigint:
-2^63 to 2^63-1
also known as roughly:
-9.2 x 10^18 to 9.2 x 10^18
Otrzymujesz ten zakres z liczbą dziesiętną (18,0) :
-10^18 to 10^18
Dziesiętny:bajty pamięci na precyzję
Precision Storage Bytes
1-9: 5
10-19: 9
20-28: 13
29-38: 17
Typy liczb całkowitych i bajty pamięci
integer type Storage Bytes
bigint 8
int 4
smallint 2
tinyint 1
Myśli
Dwa przykłady zamieszczone w Twoim pytaniu w rzeczywistości dają praktycznie taką samą liczbę unikalnych wartości.
Ponadto nie zauważysz znaczącej zmiany wydajności bez względu na Twój wybór, ale zauważysz zmianę wydajności innych programistów w zespole, jeśli zaczniesz używać ułamków dziesiętnych tam, gdzie programiści oczekują liczby całkowitej. To drobny punkt.
Aby rozwiązać konkretny problem, jeśli chcesz mieć większy zakres, użyj Decimal (38,0). To daje:
-10^38 to 10^38
Jeśli martwisz się o szybkość, użyj minimalnej precyzji, która wystarczy na cały okres użytkowania oprogramowania.
Jeśli nie mierzysz czasu w nanosekundach, wybierz opcję, która najlepiej pasuje do sposobu myślenia programistów i chęci posiadania bardzo długiego zestawu liczb.
Referencje