HANA:计算视图-图形化视图-“参数“-引用表数据(性能优化)

1.前言

最近项目HANA部分的开发用的比较多,之前很少用图形化计算视图,最近研究了下,发现有些小功能对于图形化视图的性能提升,还有建模便利性都有很大帮助,今天发现了一个小功能,就是视图中的参数,不但只可以定义传统的直接输入的参数,还有几种类型

2参数的几种类型

如图,新建参数的时候,可以选择几种类型:

HANA:计算视图-图形化视图-“参数“-引用表数据(性能优化)_第1张图片

1.直接: 就是直接建一个参数 可以手动输入传参

2.列: 从表中的字段中引用一个列段参数

3.源自表:从一张表中引用字段的数据来作为参数(今天主要讲的就是这种)

4.静态列表:不知道干啥的,不知道咋用

5.源自存储过程:从存储过程中用字段的数据来作为参数

3.源自表参数的详细用法和使用场景

以上几种方式大家可以根据字面意思自己去试一下,我今天在项目中主要用到,第三种源自表的参数,记录一下使用场景和用法

3.1.需求

两张表,一张ACDOCA,一张时间配置表ZBWT_REPORT_DATE,需求就是限制ACDOCA中的期间,小于时间配置表中维护的期间,比如时间配置表维护一个202301,那么我ACDOCA的值就只取2023.01之前的数据。

如果用脚本视图,直接select,from两个表,各自取出期间限制字段即可,很简单的逻辑

SELECT ACDOCA*

FROM ACDOCA,ZBWT_REPORT_DATE

WHERE  ACDOCA.FISCYEARPER < ZBWT_REPORT_DATE.FISCYEARPER

3.2 原做法 

但是用图形化,把他两关联起来就麻烦了,我能想到的就是各自给一个字段常数1,然后ACDOCA左关联时间配置表,合成一个表后再限制期间,如图,可以说开发上看着就很繁琐,性能上acdoca全表需要去跟配置表做关联,性能也很差。

HANA:计算视图-图形化视图-“参数“-引用表数据(性能优化)_第2张图片

 3.3 优化方法:参数引用表数据

基于上面那么麻烦,我就想能不能简化点,后面乱点发现了参数的几种类型,基于参数引用表数据的方法,实现如下:

新建一个期间参数,如图引用时间配置表的期间字段,该参数即赋值为期间参数

HANA:计算视图-图形化视图-“参数“-引用表数据(性能优化)_第3张图片

随后直接在图形化视图中,用参数进行限制即可,创建一个过滤,如图

HANA:计算视图-图形化视图-“参数“-引用表数据(性能优化)_第4张图片

整体开发一步搞定

HANA:计算视图-图形化视图-“参数“-引用表数据(性能优化)_第5张图片

4.总结

开发简洁性:不用多讲,两者一看就知道了,后一种看起来都简洁很多 ,少了好几块

 性能:第二种直接限制ACDOCA源表时间范围,从数据量考虑,再上层如果还有逻辑处理性能也会大大提升

参考资料:介绍了性能问题

Improve SAP HANA calculation view performance via Derived from Table Input Parameter | SAP Blogs

你可能感兴趣的:(BW/4,HANA,HANA,BW,sql,数据库)