SQL Server十进制数据类型性能

时间:2013-12-04 14:39:39

标签: sql sql-server

我有几个表存储了相当大的数字,因此我选择了decimal(17, 2)作为所有列的数据类型。

架构示例:
表1(value1,value2,value3,value4,value5)
表2(value1,value2,value3,value4,value5)

为了论证,如果每个表中有100,000行,并且每个值都是100.00,那么如果数据类型为decimal(5, 2),如何比较查询性能?它可以忽略不计吗?主要区别是占用的存储空间吗?

2 个答案:

答案 0 :(得分:1)

如果您正在使用Decimal类型,因为您使用的是“非常大的数字”,那么您使用Decimal类型的原因是错误的。当舍入精度是主要考虑因素时,使用十进制类型,而不是因为数字很大。实际上,对于非常大的数字, float 将是更好的选择,因为它可以容纳更大的数字。就性能而言,最好的办法就是自己测试一下。填写一个包含100,000行小数,浮点数等等的表格并测试查询性能。

答案 1 :(得分:0)

MSDN decimal and numeric

Precision    Storage bytes
--------------------------
1 - 9        5
10-19        9

因此,它decimal(5, 2)比存储中的decimal(17, 2)少45%。

执行时间的差异取决于服务器的任务和配置。如果瓶颈是I / O系统上的负载,那么增加可能是~40%。