SQL Server中的Currency值列应选择什么数据类型。我已经在网上阅读了一些内容在客户实施方面,我们发现了一些有关货币数据类型的有趣性能数据。例如,当Analysis Services设置为货币数据类型(来自double)以匹配SQL Server货币数据类型时,处理速度(行/秒)提高了13%。是真的吗?
答案 0 :(得分:5)
SQL Server中的Currency值列应选择什么数据类型。
我总是选择decimal
,除非有充分的理由不这样做。 float
是不合适的,因为并非所有十进制值都可以准确表示,并且您最终会得到奇怪的工件(例如,您将获得48.15000000000000000135
的数量。)
money
通常不合适,因为它具有固定的精度和比例,可能与您的实际要求不符。并且它对每个中间结果以及最终结果应用舍入,这可能不适合于复杂计算。通过decimal
计算,您可以更好地控制何时进行舍入(通过转换为精度较小的decimal
)。