【问题标题】:SQL Server: what data type for decimal measure values?SQL Server:十进制度量值的数据类型是什么?
【发布时间】:2011-01-16 19:04:23
【问题描述】:

在为报告目的构建数据集市时(使用维度建模),我应该将哪些数据类型用于十进制度量值(用于快速操作)?数字、小数还是金钱?

【问题讨论】:

标签: sql-server sql-server-2008 database-design types data-warehouse


【解决方案1】:

数字 = 十进制。不同的名称,相同的数据类型。 至于钱,请看 Aaron Bertrand 所做的这个有趣的测试
https://sqlblog.org/2008/04/27/performance-storage-comparisons-money-vs-decimal

多头和短处是十进制比货币更快(略微)并且更灵活;金钱实际上仅适用于货币,并且锁定为 4dp。如果您正在建模并且浮点数学是可以接受的,请考虑使用浮点/实数的浮点数学,这是 CPU 上的本机(有浮点寄存器,但不是十进制)。浮点数总是比小数快。

【讨论】:

    【解决方案2】:

    十进制看起来不错,您可以定义所需的精度。

    【讨论】:

      【解决方案3】:

      如果您想要 FAST,请单次/浮动。一旦你进入聚合等 - 它们在处理十进制时会更快,因为它们是支持数学的directoy操作系统。

      但是,您不应该在 SQL Server 中构建报告集市,而应在 SSAS 子系统中构建。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-10
        • 2012-01-14
        • 2011-02-04
        • 1970-01-01
        • 2011-12-23
        • 1970-01-01
        相关资源
        最近更新 更多