2

SQLServerデータベースに数値を格納する列があります。問題は、その数が数十億である場合もあれば、1.355E-16である場合もあるということです。数値をnumeric(35,20)のような巨大なものに設定しますが、それによってすべてがデータベース内でそれだけのスペースを占めるようになると思いました。これは無駄のようです。これを効率的に行う方法はありますか?たとえば、短い文字列がある場合と長い文字列がある場合にvarcharを使用する方法はありますか?

4

2 に答える 2

3

SQL Server のバージョンとエディションは? SQL Server 2005 SP2 で導入されたvardecimal形式は、行とページの圧縮を使用するために既に非推奨になっています

vardecimalと圧縮の両方に Enterprise Edition エンジンが必要です。

于 2012-09-21T20:02:20.603 に答える
1

それは、番号を何に使用するかによって異なります。

float と realを格納できる FLOAT を使用できます(Transact-SQL)

float
- 1.79E+308 to -2.23E-308, 0 and 2.23E-308 to 1.79E+308
real
- 3.40E + 38 to -1.18E - 38, 0 and 1.18E - 38 to 3.40E + 38

あなたが何を達成したいかによると私が言う理由は、

浮動小数点数値データで使用する概数データ型。浮動小数点データは概算です。したがって、データ型の範囲内のすべての値を正確に表現できるわけではありません。

SQL フィドルの例

ここで、どのデータ型を選択するかについての議論は、多くのビールに費やされたものですが、ルールは同じままです。それは、特定のビットの重要性に依存します。

于 2012-09-21T20:00:16.687 に答える