物化视图与 SSAS 多维数据集
Materialized View vs SSAS Cube
这是当前情况 - 我们在 Oracle 数据库中有 3 个表(包含数百万条记录),用于生成 SSRS 报告。
这些报告显示了复杂的数据计算,例如偏差、中位数等
- SSRS 根据日期参数使用 oracle 中的存储过程(连接所有 3 个表)获取数据
- 计算在 SSRS 中执行,数据显示在表格和图表中
现在,对于较短的日期持续时间,报告的生成速度非常快,因此没有问题。
当日期范围很大,如一周或 2-3 个月时,报告需要花费大量时间来处理,而且大多数时候它也会超时。
为了解决这个问题,我正在考虑从 SSRS 中删除计算并将它们移动到数据库级别。我们可以在哪里获得预先计算的数据
它将提供给 SSRS 报告以更快地生成报告。
为了做到这一点,我可以看到 2 个选项 -
Oracle Materialized Views
SSAS Cube
我以前从未使用过物化视图,所以我对它的性能特别是 FAST REFRESH 问题有点怀疑。
您更喜欢哪种方式? MV 或 SSAS 或两者的混合?
数据模型 (SSAS) 非常适合组织数据、整合业务逻辑以及定义计算在不同范围内的行为方式。它们通常比您当前拥有的原始数据查询速度更快。涉及一些缓存,但您仍然必须查询数据并等待它被处理。当您有多个报告将使用一组通用数据时,模型也是最合适的。
使用物化视图,您可以将计算时间的繁重工作转移到计划刷新上。将其视为本质上与创建由过程刷新的新 table 相同。这将大大缩短报告的查询时间,尤其是当您筛选的日期列已编入索引时。此外,开发和维护要求比模型低很多。
因此,根据您的规格,我建议使用物化视图。
我同意物化视图 (MV) 方法。根据数量和类型(插入与更新与删除)将确定快速刷新是否可能或实用。
与直觉相反,完全刷新通常是更好的方法,因为您可以更好地利用基于集合的 SQL 处理以及并行性来构建 MV。
这是当前情况 - 我们在 Oracle 数据库中有 3 个表(包含数百万条记录),用于生成 SSRS 报告。 这些报告显示了复杂的数据计算,例如偏差、中位数等
- SSRS 根据日期参数使用 oracle 中的存储过程(连接所有 3 个表)获取数据
- 计算在 SSRS 中执行,数据显示在表格和图表中
现在,对于较短的日期持续时间,报告的生成速度非常快,因此没有问题。 当日期范围很大,如一周或 2-3 个月时,报告需要花费大量时间来处理,而且大多数时候它也会超时。
为了解决这个问题,我正在考虑从 SSRS 中删除计算并将它们移动到数据库级别。我们可以在哪里获得预先计算的数据 它将提供给 SSRS 报告以更快地生成报告。
为了做到这一点,我可以看到 2 个选项 -
Oracle Materialized Views
SSAS Cube
我以前从未使用过物化视图,所以我对它的性能特别是 FAST REFRESH 问题有点怀疑。
您更喜欢哪种方式? MV 或 SSAS 或两者的混合?
数据模型 (SSAS) 非常适合组织数据、整合业务逻辑以及定义计算在不同范围内的行为方式。它们通常比您当前拥有的原始数据查询速度更快。涉及一些缓存,但您仍然必须查询数据并等待它被处理。当您有多个报告将使用一组通用数据时,模型也是最合适的。
使用物化视图,您可以将计算时间的繁重工作转移到计划刷新上。将其视为本质上与创建由过程刷新的新 table 相同。这将大大缩短报告的查询时间,尤其是当您筛选的日期列已编入索引时。此外,开发和维护要求比模型低很多。
因此,根据您的规格,我建议使用物化视图。
我同意物化视图 (MV) 方法。根据数量和类型(插入与更新与删除)将确定快速刷新是否可能或实用。 与直觉相反,完全刷新通常是更好的方法,因为您可以更好地利用基于集合的 SQL 处理以及并行性来构建 MV。