垂直存储SQL数据有什么好处?

时间:2016-09-14 15:47:01

标签: sql-server database-design reporting-services ssrs-2008 ssas

我正在处理几个表,这些表最终将用作BI项目的数据仓库。这些表存储计数器数据,然后用于计算KPI。

因此,例如,表格目前如下所示:

DimCounter
Counter       ParmId
KpiStore      1       (used for Sales reports)
KpiInventory  2       (used for Sales reports)
Kpi3          3
Kpi4          4

数据表如下所示:

FactSales
ParmId   Value  ProcDate    ProcHour
1        20     20160914    12
2        40     20160914    12
1        70     20160914    12

所以,现在我们有一些销售报告可以很好地使用这种格式;用垂直格式的数据创建查询并不是问题。但我认为,水平存储数据可能会更好,如下所示:

FactSales
ProcDate    ProcHour    KpiStore    KpiInventory
20160914    12          20          40

销售报告实际上是更简单,最直接的报告,因为它使用两个计数器,而且主要是加法/减法。但是还有一些更复杂并且使用更多计数器,需要以多种方式进行分组。

以这种或那种方式存储数据有什么好处?更具体地说,对于用于BI的数据仓库,垂直存储数据有什么好处吗?

我忘了提到原始源数据是水平存储的(每列有一个度量标准),但源数据不用于数据仓库。所以问题基本上是它是否有助于数据仓库。

感谢。

1 个答案:

答案 0 :(得分:0)

当前规范化的最大好处来自于,与修改表结构相比,只需执行表插入即可添加新值。除此之外,您可能还会为不同的计数器类型提供大量的空值。例如:

FactSales
ProcDate    ProcHour    KpiStore    KpiInventory
20160914    12          20          40
20160915    11          30          NULL

您当前的数据环境可能不是这种情况,但如果您要锁定这些字段,则会失去很大的灵活性。与通常情况相比,我通常更加规范化,因为我通常希望有更多的未来灵活性来添加新字段和容纳字段更改(有时候,以前不允许空值的字段有时可能在将来为空)等等...... / p>