- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
FK Distinct Values %
---- --------------- ------
Id1 1 0.1%
,Id2 4 0.3%
,Id3 5 0.3%
,Id4 6 0.4%
,Id5 6 0.4%
,Id6 95 6.1%
,Id7 97 6.2%
,Id8 1423 90.7%
所有外键都已经组成了集群Primary Key
。此事实表是包含 6 个维度(Id 的 6、7 和 8 引用相同的日期维度)的星型模式的一部分。
事实表目前大约有 1800 行(小得令人难以置信),并且预计每个月都会增长该数量。
每个外键都应该有自己的非聚集非唯一单列索引以促进连接吗?如果是这样,为什么?
每个外键都将成为其维度表中聚簇索引(主键)的一部分。
如果应该在外键上放置索引,那么应该将填充因子和填充索引设置为多少,因为列的基数较低?
最佳答案
您的个人资料中的“%”列并没有真正意义 - 为什么要找到跨字段的不同值的“百分比”?您需要有关不同值分布的统计信息——Id8 上 99% 的键是否相同?它们分布均匀吗?等
请注意,我在这里所说的一切都适用于更大的表。每月 1800 行,索引可能会浪费您的空间和时间。
@jrara 关于索引所有 dims 的“规则”是一个易于应用的规则,但如果仅此而已,则很容易出错。例如,我不想在我的 1 亿行客户维度上使用 oracle 位图索引。
索引取决于针对您的数据的查询。如果您正在对事实表进行全面扫描以对“摘要”报告执行聚合和分组,则索引将无济于事。当用户试图过滤维度的属性时,它们会有所帮助,并且该过滤器导致您只需从事实表中查找一小部分记录。你的 table 有一个主要的入口点吗?人们通常会根据“Id8”维度的属性进行过滤,然后希望根据其他维度的属性进行分组吗?
基本上您的问题的答案是:
是否每个外键都有自己的非聚集非唯一单列索引以促进连接?
一般来说,是的,只要维度表很小,并且暗键在事实表中分布相对均匀。通常使用索引访问获取 99% 的事实表行会更糟。
鉴于列的基数较低,应将填充因子和填充索引设置为多少?
将 FILLFACTOR 降低到 100% 以下将导致索引读取变慢,因为索引中有更多(空)页供 DB 读取。由于数据仓库是为快速选择而设计的,所以我真的不建议您向下调整填充因子。
话虽这么说,在少数情况下,调整您的 FILLFACTOR 可能是有意义的。如果事实表非常大(数百 GB/TB),并且重建索引需要数小时,并且您可能每月只重建一次索引甚至更少。在这些情况下,您需要计算出每天要添加到表中的数据量(百分比),并相应地设置填充因子。
关于sql-server-2008 - 我应该在事实表中的这些外键上放置一个非聚集索引吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13504204/
我正在尝试使用以下命令通过 ansible 收集服务器 list : ansible all -m setup -a --tree facts/ 但这会在facts文件夹下为每个主机生成很多操作系统单
我决定学习 prolog 只是为了好玩,我正在看一些视频教程。我也在互联网上搜索了一些问题试图解决,但找不到解决方法。 我能够在纸上解决这个难题,但无法将其传递到代码中。 问题: I have 8 c
我正在通过DRT(规则模板)读取Excel表,然后通过Java类中的静态方法将其转换为类的对象。并将其插入到工作内存中。这样,工作内存就会被 Excel 表格中的所有事实填满。 现在,我通过 sess
我确信这非常简单,但我显然没有用谷歌搜索正确的东西。在几个单元测试相关的博客中,我看到了几个方法被赋予的属性 [fact] ,但我似乎无法弄清楚这意味着什么。示例: public class Some
我想知道这些术语之间的区别: 事实 仿函数 谓词。 规则 在Prolog中。 如果我写:brother(john, jack).这是事实吗?或谓词? 最佳答案 从 ISO/IEC 13211-1 Fi
问题 为什么选择 Ansible 事实,例如 ansible_distribution在角色部分不可用? --- - name: Test hosts: all tasks: - na
puppet 事实看起来像这样: processors => {"models"=>["AMD Opteron(tm) Processor 6172", "AMD Opteron(tm) Proces
在做了一些研究之后,我对 Prolog 以非常简单的方式表达查询的能力感到惊讶,几乎就像口头告诉机器该做什么一样。发生这种情况是因为我对工作中的 Propel 和 PHP 感到非常厌烦。 所以,我一直
我想生成一个密码和其他一些不存在的值。 像这样的东西: - name: Retrieve or generate my_password generated_fact: shell: so
我需要从 SEC 10-K 文件中获取一些事实,例如毛收入、毛利润、毛利率、营业费用等以及相应的上下文。 对于像 https://www.sec.gov/Archives/edgar/data/131
我是 puppet 新手,并计划在我们的环境中实现它。 我有在不同版本的 Redhat 上运行的 puppet 代理。 现在,我计划从 puppet master 推送存储库文件,我需要您的指导来实现
我是 puppet 新手,并计划在我们的环境中实现它。 我有在不同版本的 Redhat 上运行的 puppet 代理。 现在,我计划从 puppet master 推送存储库文件,我需要您的指导来实现
是否可以使用通常包含在 ansible_facts 中的内容?在 Ansible 临时命令中? 例如,我有一个位于 /tmp/myFile 的文件。在我所有的服务器上,我想做: ansible all
获得正确的术语是成功传达概念的一部分,当在 SO 中使用错误的术语时,带有 Prolog 标签的受访者会很好地指出错误。 在阅读 William F. Clocksin 于 1997 年 ( Worl
上下文:我的系统包含来自不同存储 Controller 的磁盘组合,因此每种类型的磁盘都有不同的用途。我是 ansible 的新手,我一边学习一边学习。编写一个剧本,从每种类型的 Controller
我是数据仓库的新手,我希望有一个关于构建星型模式的简单问题: 如果我有一个事实表,其中事实记录自然与单个维度具有一对多关系,那么如何建模星型模式来支持这一点?例如: 事实表:销售点条目(衡量标准是美元
我正在用 Idris 编写一个基本的 monadic 解析器,以适应与 Haskell 的语法和差异。我有基本的工作,但我坚持尝试为解析器创建 VerifiedSemigroup 和 Verified
我的应用程序需要足够的准确性,但 Google Places 按类别过滤的准确性似乎很差。所以我正在考虑迁移到 Factual API。大家用过吗?您如何看待它的准确性? 另一方面,我需要知道到某个地
我是一名优秀的程序员,十分优秀!