【问题标题】:Money vs. Decimal vs. Float Performance issues (SQL data types for Currency value)?Money vs. Decimal vs. Float 性能问题(货币值的 SQL 数据类型)?
【发布时间】:2023-03-07 06:59:01
【问题描述】:

SQL server 中货币值列应该选择什么数据类型。我在网络上阅读了一些在处理客户实施时,我们发现了一些关于货币数据类型的有趣的性能数据。例如,当 Analysis Services 设置为货币数据类型(从双精度)以匹配 SQL Server 货币数据类型时,处理速度(行/秒)提高了 13%。 是真的吗?

【问题讨论】:

  • 根据您的业务需求选择数据类型
  • 什么“它”是真的?基本上,对于任何想要的测量差异,您都可以创建实验来证明它是真实的:)
  • 为什么要考虑需求??每个人都需要他的应用程序的最佳性能。
  • 我想在数据库中保存货币。这是我的要求。
  • @urzshah,感谢有趣的短语“为什么要考虑需求?每个人都需要他的应用程序的最佳性能”。但实际上,大多数人首先关心代码是否能正常工作,其次才是足够快。只需担心最佳性能,因为它的成本通常远远超过足够快的速度。

标签: c# sql-server


【解决方案1】:

SQL server 中货币值列应该选择什么数据类型。

我总是选择decimal,除非有充分的理由不这样做。 float 不合适,因为并非所有十进制值都可以精确表示,并且您最终会得到奇怪的伪像(例如,您将拥有大量 48.15000000000000000135)。

money 通常是不合适的,因为它具有固定的精度和比例,可能与您的实际要求不匹配。它对每个中间结果以及最终结果进行舍入,这可能不适合复杂的计算。使用decimal 计算,您可以更好地控制何时进行舍入(通过转换为具有较小精度的decimal)。

【讨论】:

    猜你喜欢
    • 2023-03-06
    • 2016-05-22
    • 2016-04-18
    • 2014-05-25
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多