oracle - 物化 View 与 SSAS 多维数据集

标签 oracle reporting-services ssas cube materialized-views

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

  • SSRS 根据日期参数使用 oracle 中的存储过程获取数据(加入所有 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/

    相关文章:

    sql - 如何使用 Oracle SQL Developer 连接到数据库

    sql-server - 我的报告管理器用户名/密码是什么?如何找到它?

    sql - SSRS 2008 隐藏列不应导出为 CSV

    sql - OLE DB 或 ODBC 错误 : Login failed for user 'NT AUTHORITY\NETWORK SERVICE

    SSAS测量值聚合误差

    MySQL 开发人员在这里 -- 在 Oracle 10g 中嵌套 select * 挑剔吗?

    多个where子句上的SQL Oracle rownum?

    ssas - 在 BIDS 中更改多维数据集或项目的默认 NullProcessing 设置

    java - Wildfly - 失败登录异常 : Password Incorrect/Password Required Exception

    reporting-services - SSRS mdx 报告 : calculated member with maximum rank value for passes multivalue parameter