我们需要存储不同帐户的汇总值,这些帐户按月/年汇总各种数字。每次更新数据时,这些数字都会更新(通常每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?
答案 0 :(得分:0)
设置作业以运行将数据插入表中的存储过程。
存储帐户,年,月,价值等数据
使用这些表的视图报告多个聚合。
绝对坚持使用SQL。没有理由为这么简单的任务增加技术开销。
答案 1 :(得分:0)
我会坚持使用SQL。但是,如果您担心重建此类PIVOT表的时间,请不要这样做,因为您不必构建具有唯一“密钥”的表。
使用键+进程日期时间构建它,然后将其附加到主数据透视表。因此,在创建增量期间,它将受到事务时间戳(开始和结束)的限制。应该有很多膨胀。如果有,您可以在周末工作中折叠处理日期。