【问题标题】:What are the advantages/disadvantages of having all Foreign Keys in the Fact Table?在事实表中包含所有外键的优点/缺点是什么?
【发布时间】:2019-12-21 18:19:32
【问题描述】:

我们的团队正计划将缺失的维度键 (FK) 添加到我们的事实表中,以允许在我们的维度和事实表之间直接查询,而不是遍历表。本质上,更倾向于星型模式。这将提高查询性能(因为需要更少的连接)。

我在网上读到外键 (FK) 约束会影响插入、更新和删除的性能。

还有其他我们应该考虑的事情吗?

【问题讨论】:

    标签: sql foreign-keys primary-key normalization star-schema


    【解决方案1】:

    主要缺点是事实表记录的大小增加。您无需指定行的大小,但添加新的外键可能会显着影响行的大小。

    在大多数数据库中,事实表中增加的行大小会减慢查询速度。但是,这在列式数据库中问题不大。

    事实上,增加的大小可能超过避免连接的优势。

    一般来说,我不会担心主键上的中小型维度表的连接。也就是说,在进行如此彻底的改变之前,对完整的数据进行大量测试。

    inserts 的影响仅仅是需要验证密钥。但是,这是针对引用表的主键进行检查,因此这些检查非常快。更多显然比更少更昂贵,但开销可能不会成为阻碍。

    可能是优点或缺点的一件事是尺寸在输入时是静态的。更新事实表通常非常昂贵。但是,尺寸确实发生了变化。例如,偶尔会创建新的国家/地区。这在历史数据中是如何表示的?

    在雪花模式中,您的最低地理级别(可能)会比国家/地区更精细,并且只需要更新维度。而且,如果需要更新事实表中的最低级别,那将影响相对较少的行。

    【讨论】:

      猜你喜欢
      • 2012-07-25
      • 2011-12-29
      • 1970-01-01
      • 2014-01-24
      • 2010-09-10
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多