这是当前场景 - 我们在 Oracle DB 中有 3 个表(包含数百万条记录),用于生成 SSRS 报告。
这些报告显示复杂的数据计算,例如偏差、中位数等。
现在,对于小日期持续时间,报告生成得非常快,所以没有问题。
当日期范围很大(如一周或 2-3 个月)时,报告需要大量时间来处理,而且大部分时间也会超时。
为了解决这个问题,我想从 SSRS 中删除计算并将它们移到 DB 级别。我们可以在哪里获得预先计算的数据
它将提供给 SSRS 报告以加快报告生成速度。
为了做到这一点,我可以看到 2 个选项 -
Oracle Materialized Views
SSAS Cube
我以前从未使用过物化 View ,所以我对它的性能特别是快速刷新问题有点怀疑。
你更喜欢哪种方式? MV 或 SSAS 或两者的混合?
最佳答案
数据模型 (SSAS) 非常适合组织数据、整合业务逻辑以及定义计算在不同范围内的行为方式。它们通常比您目前拥有的原始数据查询更快。涉及一些缓存,但您仍然必须查询数据并等待它被处理。当您有多个将使用一组通用数据的报告时,模型也是最合适的。
使用物化 View ,您可以将繁重的计算时间转移到计划刷新。将其视为本质上与创建由过程刷新的新表相同。这将大大缩短报告的查询时间,尤其是在您筛选的日期列已编入索引的情况下。另外,开发维护需求是多这比模型低。
因此,根据您的规范,我建议使用物化 View 。
关于oracle - 物化 View 与 SSAS 多维数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42432993/