【发布时间】:2011-01-16 19:04:23
【问题描述】:
在为报告目的构建数据集市时(使用维度建模),我应该将哪些数据类型用于十进制度量值(用于快速操作)?数字、小数还是金钱?
【问题讨论】:
标签: sql-server sql-server-2008 database-design types data-warehouse
在为报告目的构建数据集市时(使用维度建模),我应该将哪些数据类型用于十进制度量值(用于快速操作)?数字、小数还是金钱?
【问题讨论】:
标签: sql-server sql-server-2008 database-design types data-warehouse
数字 = 十进制。不同的名称,相同的数据类型。
至于钱,请看 Aaron Bertrand 所做的这个有趣的测试
https://sqlblog.org/2008/04/27/performance-storage-comparisons-money-vs-decimal
多头和短处是十进制比货币更快(略微)并且更灵活;金钱实际上仅适用于货币,并且锁定为 4dp。如果您正在建模并且浮点数学是可以接受的,请考虑使用浮点/实数的浮点数学,这是 CPU 上的本机(有浮点寄存器,但不是十进制)。浮点数总是比小数快。
【讨论】:
十进制看起来不错,您可以定义所需的精度。
【讨论】:
如果您想要 FAST,请单次/浮动。一旦你进入聚合等 - 它们在处理十进制时会更快,因为它们是支持数学的directoy操作系统。
但是,您不应该在 SQL Server 中构建报告集市,而应在 SSAS 子系统中构建。
【讨论】: