さて、あなたは 決して到達することのない数値を保存するために、より多くのデータを消費します。
bigint は 8 バイトで 9,223,372,036,854,775,807 になります
int は 4 バイトで最大 2,147,483,647 になります
正しい計算をしていれば、NUMERIC(38,0) は 17 バイトかかります。
大きな違いではありませんが、データ型が小さい =メモリ内の行数が多い (または行数が同じ場合のページ数が少ない) =ルックアップ (インデックスまたはデータ ページのシーク) を行うためのディスク I/O が少なくなります。レプリケーション、ログ ページなどについても同様です。
SQL Server の場合:INT は IEEE 標準であるため、CPU で比較しやすいため、INT と NUMERIC (パック 10 進形式) を使用すると、パフォーマンスがわずかに向上します。 (Oracle では、現在のバージョンが私が育った古いバージョンと一致する場合、すべてのデータ型がパックされているため、内部の INT は NUMERIC( x,0 ) とほとんど同じであるため、パフォーマンスの違いはありません)
したがって、大まかに言えば、大量のディスク、RAM、および予備の I/O がある場合は、必要なデータ型を使用してください。もう少しパフォーマンスを上げたい場合は、もう少し保守的にしてください。
そうでなければ、この時点でそのままにしておきます。変更する必要はありません。