No, jste utrácet více dat za ukládání čísel, na která nikdy ve skutečnosti nedosáhnete.
bigint stoupá na 9 223 372 036 854 775 807 v 8 bytech
int se zvýší na 2 147 483 647 ve 4 bytech
NUMERIC(38,0) zabere, pokud to spočítám správně, 17 bajtů.
Není to velký rozdíl, ale:menší datové typy =více řádků v paměti (nebo méně stránek pro stejný počet řádků) =méně diskových I/O pro vyhledávání (buď indexované nebo vyhledávání datových stránek). Totéž platí pro replikaci, stránky protokolu atd.
Pro SQL Server:INT je standard IEEE, a proto je pro CPU snazší jej porovnávat, takže při použití INT vs. NUMERIC (což je komprimovaný desítkový formát) získáte mírné zvýšení výkonu. (Poznámka v Oracle, pokud se aktuální verze shoduje se staršími verzemi, na kterých jsem vyrůstal, VŠECHNY datové typy jsou zabaleny, takže INT uvnitř je v podstatě totéž jako NUMERIC( x,0 ), takže není žádný rozdíl ve výkonu)
Takže ve velkém schématu věcí - pokud máte hodně disku, RAM a náhradních I/O, použijte libovolný datový typ. Pokud chcete získat trochu vyšší výkon, buďte trochu konzervativnější.
Jinak bych to v tuto chvíli nechal tak, jak to je. Není třeba věci měnit.