我正在尝试构建一个数据仓库。 我有很多维度和几个度量 - 事实。每个度量都与所有业务相关的维度相连。标准方法是使用一个大的事实表,其中包含所有度量。 但我有一个想法:如果我为每个度量使用单独的事实表会怎样?这会对数据库性能、解决方案可扩展性等方面产生什么影响? 编辑:在非常复杂的企业环境中基于OLAP立方体创建一个庞大的解决方案。因此,首先需要易于扩展和维护,然后是性能。
简述:如果仅有一个事实表/度量值,我会看到可扩展性问题无处不在。如果你的目标是“可扩展性和维护性”,那么你可能考虑遵循业界标准方法,例如Kimball并通过一致的维度将事实首先按业务过程进行分组,然后按粒度进行分组。 我很高兴争论一下,这将通过标准化提供最大的灵活性和可扩展性,同时确保可扩展性和维护性。此外,如果你为每个度量值设计一个单独的事实表,你的SAN管理员将讨厌你,因为你实际上正在增加空间要求的度量值数量...至少在当前所有度量值适合单个事实表的情况下。查询DW的性能也将是一个问题...报告和/或自定义查询将不得不每次需要组合多个度量值时扫描(或查找...如果你的SAN管理员仍在与你交谈并慷慨地授予你必要的空间来正确索引你的一系列事实表)。我们甚至还没有讨论OLAP立方体,但我已经对你将遇到的处理问题感到担忧。 全表扫描无处不在...或分区扫描...如果你在事实表中实施了分区...而你现在应该这样做,因为SQL 2012正在到来...我在看着你ColumnStore Index!!