背景:
我在 UAT 阶段有一个事实表。目标是在 Prod 中加载 5 年的数据(预期大小为 4 亿条记录)。目前它只有 2 年的测试数据。
表特点:
- 尺寸数 ~ 45
- 措施 ~ 30
- 非相加措施等栏目~ 25
- 当前数据大小 ~ 2 亿(2 年数据)
- 时间视图:3 种不同的月视图:财政/日历/调整后(即,同一行可以根据正在寻找的视图出现在不同的月份)
- 用户一次只需要一个视图。(即查询中只会使用一个 Month Column,这会阻止我们对时间视图进行分区)
- 索引:自然键上的 1 个聚集索引(8 列)。创建了 3 个覆盖非聚集索引,每个月列一个,包括少数维度 SK(FK)和所有度量)。
- 因此,索引很大(总共 190 GB)。
- 空间不受限制(已分配 1 TB)
- 服务器中可用的 64 GB RAM。
- 表压缩也做了。
要求:
在这个事实表上的查询应该在 30 秒内给出结果(一般查询选择 sum(measure) 通过 Dim 值加入几个 Dims 组)。报告直接在此事实表的顶部完成。
问题:
任何包含索引中可用列的查询都可以正常工作,但是如果我们包含不在包含中的任何其他列......它很糟糕。需要5-10分钟以上。任何人都可以建议一些解决方案,它适用于我们选择的任何维度/列。在这种情况下,索引视图可以提供帮助吗?