实体视图与SSASCUBE



这是当前方案 - 我们在Oracle DB中有3个表(具有数百万记录),用于生成SSRS报告。这些报告显示了复杂的数据计算,例如偏差,中位数等。

  • ssrs使用oracle中存储的proc(根据日期参数加入所有3个表)中获取数据
  • 计算在SSR中进行,数据显示在表和图表中

现在,在较小的约会持续时间内,报告的生成很快,因此没有问题。当日期范围像一周或2-3个月一样大时,报告需要大量时间来处理,并且大多数时间也会被计时。

为了解决此问题,我想从SSR中删除计算并将其移至DB级别。我们可以在哪里获得预计数据将提供给SSRS报告的更快报告。

为了做到这一点,我可以看到2个选项 -

  • Oracle Materialized Views

  • SSAS Cube

我以前从未使用过实质性的观点,所以我对它的性能特别快速刷新问题有些怀疑。

您更喜欢哪种方式?MV或SSA或两者的混合?

数据模型(SSA)非常适合组织数据,合并业务逻辑以及定义计算在不同范围中的行为方式。它们通常比您当前拥有的原始数据更快。涉及一些缓存,但是您仍然必须查询数据并等待它处理。当您有多个将使用一组通用数据的报告时,模型也是最合适的。

有了实现的视图,您可以将计算时间的繁重提升转移到预定的刷新中。认为它与创建一个过程刷新的新表格本质上是相同的。这将大大改善报告的查询时间,尤其是如果您要进行过滤的日期列。另外,开发和维护要求的比模型要低。

因此,根据您的规格,我建议使用实现的视图。

我会同意实现的视图(MV)方法。根据数量和类型(插入更新与删除)的不同,将确定快速刷新是否可能或实用。反直观地,完整的刷新通常是一种更好的方法,因为您可以更好地利用基于设置的SQL处理,以及并行构建MV。

最新更新