关于我们

ABOUT US

关于我们
公司新闻
企业软件中报表实现方式对比-SQL报表以及MDX报表对比
2022-11-18       浏览次数:
        包括ERP,EPM等企业软件功能中经常会包括数据报表功能,主要是通过自定义或固化条件查询数据并以报表方式呈现。本文通过对比关系型数据库SQL语法,和多维数据库MDX语法两种生成报表方式,说明数据报表生成的效率,多维数据库要远高于关系型数据库。
 
对比数据库类型:
        关系型数据库:Oracle 11g
        多维数据库:智达方通多维数据库 Intcube Booster V4.5
 
多维数据模型信息:
        维度:科目,组织,期间,场景、版本、产品,共计6个
 
对比应用场景:
1、聚合计算
      SQL方式:脚本字符数:6919
      MDX方式:脚本字数:204
 
2、期间累计场景
      SQL方式:脚本字符数:2260
      MDX方式:脚本字符数:242
 
3、上年同期增长额场景
      SQL方式:脚本字符数:1658
      MDX方式:脚本字符数:248
 
4、预实增减比场景
      SQL方式:脚本字符数:1628
      MDX方式:脚本字符数:274
 
        比较以上四种应用场景下的报表查询脚本,关系型数据库的SQL脚本,复杂度远高于多维数据仓库MDX脚本。脚本的可读性也是MDX更高,更易于业务人员自行维护。
 
        以下为测试场景详情:

数据库实例


科目表,总行数:358


 

组织表,总行数:15


 

期间表,总行数:37



场景表,总行数:29



版本表,总行数:8



产品表,总行数:32



事实数据表,总行数:1000000



 

常见分析场景对比


一、聚合场景

分析场景描述:
 

备注:因篇幅原因此处截图列上只有2022年1季度及其子项
 
示例:


SQL实现
  1. 聚合查询条件:四季度+销售费用合计
  2. 聚合查询条件:四季度+销售费用合计子项
  3. 聚合查询条件:四季度子项+销售费用合计
  4. 聚合查询条件:四季度子项+销售费用合计子项
  5. 因SQL较长,此处不再列出,详细查看附录中SQL脚本case1.sql
  6. 备注:如展示效果要求的层级越深,则所需的SQL越多。

MDX实现
 

二、期间累计场景对比

分析场景描述



        示例:

 

SQL实现
  1. 查询期间2022年下有哪些子项



  1. 查询每个季度下的子项(此处列出其中一个季度的SQL)



  1. 查询事实数据



  1. 此场景下的例子除期间维度外只使用的一个成员,如复杂分析情况下,SQL会更加复杂。

MDX实现

 
 

三、上年同期增长额场景对比

分析场景描述

 
        示例:


SQL实现
  1. 查询期间该层级的成员




  1. 查询[2022年]和上年[2021]的预算数据


查询结果:


MDX实现



四、预实增减比场景对比

分析场景描述

 
        示例:


SQL实现
  1. 查询期间该层级的成员


  1. 查询[2022年]和上年[2021]的预算,实际确认数据并进行计算


查询结果:


MDX实现



总结

●  MDX查询对应的是多维视图,可以轻易的实现聚合查询,且根据多维场景优化,查询效率较高;而SQL对应的是关系视图,聚合查询的复杂度高很多,且查询效率很低。
●  MDX的语法更为清晰和简单,提供丰富的函数和接口,方便用户学习和使用;而SQL接口暴露的语义模型相对简单,需要面对数据库表和列,想要实现效果需复杂的SQL逻辑,学习成本较高。
●  MDX的计算表达能力更加丰富,能够更好的支持复杂分析场景。

附录:case1.sql

  • 四季度+销售费用合计

  • 四季度+销售费用合计子项

  • 四季度子项+销售费用合计

  • 四季度子项+销售费用合计子项

产品中心
企业绩效管理系统套件
行业版产品
管理咨询
预算管理咨询
成本费用管控
绩效管理咨询
IT 规划咨询
解决方案
按行业解决方案
按应用解决方案
服务支持
产品标准服务
客服专线
关于我们
公司介绍
资质荣誉
公司新闻
业内新闻
管理团队
联系我们
招贤纳士
社会招聘
校园招聘

 2010-2030 北京智达方通科技有限公司 版权所有      京公网安备 11010502040655号    京ICP备11004585