【发布时间】:2012-10-01 00:21:01
【问题描述】:
我们需要存储不同帐户的汇总值,这些汇总值按月/年汇总了各种数字。每次更新数据时都会更新这些数字(通常每 24 小时一次或两次)。
我希望数据是 PIVOT 函数的结果,例如:
Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2011 0 0 0 0 0 0 95 33 34 24 36 52
每个帐户都需要不同的聚合,例如“客户数量”、“订单数量”和“销售价值”,我不确定是否最好向数据添加键或使用单独的表格,例如:
Year Key Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2011 CntOrders 0 0 0 0 0 0 95 33 34 24 36 52
2011 CntCust 0 0 0 0 0 0 95 33 34 24 36 52
2011 ValOrders 0 0 0 0 0 0 95 33 34 24 36 52
或者 dbo.CountOfOrders
Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2011 0 0 0 0 0 0 95 33 34 24 36 52
dbo.ValueOfOrders
Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2011 0 0 0 0 0 0 95 33 34 24 36 52
我已经阅读了许多建议使用 NoSQL 和 SQL Server 的帖子,所以我不确定我们应该走哪条路或如何决定。
目前我们无法证明专用多维数据集的合理性,但我想知道将值存储在 NoSQL 数据库中是否更好,或者我们是否应该坚持使用 SQL Server?
【问题讨论】:
-
为什么不创建“即时”执行此操作的视图?
-
由于时间限制,我们不能,数据量巨大意味着运行这些查询可能需要几分钟——不仅如此,一旦过了这一点(例如去年),数据就不会'不会改变,但会经常被访问
-
定期刷新的索引视图怎么样?
-
根据您的 SQL 产品,您可能能够构建索引 (SQL Server) 或物化 (Oracle) 视图(其他产品可能有类似的方法)。我知道在 SQL Server 中,您无法直接在视图中进行数据透视(但您可以基于执行数据透视的索引视图构建视图 based)。
标签: sql nosql aggregation nosql-aggregation