4

需要对维度建模或星型模式有所了解。

通常,当我们设计数据仓库时,我们会有事实表和维度表。

但是,在事实表中嵌入维度确实有意义。特别是对于没有其他属性且很少更改其值的简单维度。

事实表中的维度将使查询运行非常快,无需单独维护维度表,进行ETL时无需查找维度表。

是否有任何考虑将维度与事实分开?

4

1 回答 1

11
  1. 事实有很多行。如果实际上放置一个长度为 20 的属性,则比只存储一个INT代理键(4 个字节)需要更多的存储空间。更多存储 = 更大的表 = 性能下降。

  2. 您几乎总是希望针对给定属性存储其他层次结构和属性。即使你现在不这样做,你可能想在将来

  3. 通常,在报告中,您将在下拉列表中列出这些属性以供过滤。你如何从事实中得到这些?SELECT DISTINCT在一个非常大的表上,如果没有索引,这很昂贵。使用索引,您正在影响您的负载性能。

当你把东西放在维度而不是事实中时,这意味着你已经对它如何适应业务进行了某种分析

于 2014-10-23T10:57:20.720 回答