SQL Server Decimal(9、0)vs INT
顧客の1人がDECIMAL(18,0)、SQL Server 2008R2データベースのデータ型を一部の列に使用しています。列の成長が非常に遅いため、彼は最近、データ型を変更してDECIMAL(5,0)ストレージを回復することを提案しました。 MSDNライブラリによると、DECIMAL(5,0)データ型の記憶領域は、データ型と同様DECIMAL(9,0)に5バイトです。INT1バイト小さくなりますが、格納できる-99,999〜99,999の代わりに-2 ^ 31〜2 ^ 31の範囲ですべてをDECIMAL(5,0)格納できます。DECIMAL5バイト(DECIMAL(9,0))に収まる最大サイズでも、-999,999,999から999,999,999の範囲の整数のみを格納できます(INT4バイトで提供される範囲の半分未満です)。 DECIMALover を使用することの2つの「メリット」を考えることができますINT。 後でストレージ容量を使用せずにスケールを追加する機能 データ型を変更せずに、38桁まで精度をスケーリングする機能 しかし、これらは私の意見では本当の利点ではありません: 整数へのスケールの追加は、ごくわずかな場合にのみ意味があります(スケールが違いを生むほとんどの場合、事前に追加することもできます) SQL Serverは、すべての精度/スケールの組み合わせを異なるデータ型と見なします。そのため、精度またはスケールを増やしても、データ型はそのままではありません。 これは私に疑問を抱かせます:DECIMAL(5,0)整数のデータ型の追加の利点は何ですか?