在专家例程中进行性能调整。

2020-09-08 08:15发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) BW/ABAP专家, 在我们...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


BW/ABAP专家,

在我们的项目的BW系统中,以下代码是用Expert例程编写的。 但是,在执行数据加载时,Expert例程花费了更多时间。 似乎必须对例程进行微调以改善数据负载。

当我检查下面的代码时,我感觉由于删除相邻语句中使用的"或条件"而导致数据加载花费了很多时间。 您能否建议我如何优化以下代码。 目前,此流中正在加载3300万数据。

$ * $例程的开始-仅在此行下方插入代码*-*
数据:LV_DATE TYPE DATUM。
数据:LV_MAXDATE TYPE DATUM。
数据:LV_FLAG TYPE C长度1。 br> DATA:LV_COUNT TYPE I VALUE 1。 br>字段符号:与RESULT_PACKAGE行类似。

在以下位置删除源包(/BIC/TABLE1初始或
/BIC/TABLE2初始)或
/BIC/TABLE3是


不能检查源代码包。

从/BIC/TABLE4


*从临时历史加载日期
SELECT CALDAY/中选择MAX(CALDAY)到LV_MAXDATE。 BIC/G_TIC9038/BIC/G_MCC2037 INTO(LV_ADHOC_DATE,
LV_DATE_TYPE,LV_FLAG)
从/BIC/TABLE5,其中对象='A'。 '。
LV_DATEFROM = LV_ADHOC_DATE。
ELSEIF LV_DATE_TYPE ='TO'和LV_FLAG ='X'。
LV_DATETO = LV_ADHOC_DATE。
ENDI F.
ENDSELECT。

*如果未保留临时日期
************************** ************************************************
如果LV_DATETO IS INITIAL。
LV_DATETO = SY-DATUM。 "-1.
ENDIF。

如果LV_DATEFROM是INITIAL。
LV_DATEFROM = LV_MAXDATE。
ENDIF。

************ ****************************************************** ********

在源包分配中循环
清除:LV_DATE。
*如果源数据晚于目标DSO max,则仅对源数据使用有效
*日期或临时日期来自
如果LV_DATEFROM是INITIAL或-//BIC/TABLE2>
LV_DATEFROM。
LV_DATE = -//BIC/TABLE2。
ELSE。
LV_DATE = LV_DATEFROM。
ENDIF。

DO。
*仅创建并转换成当前日期之前的每日格式
*或有效至日期的临时格式
如果LV_DATE> -/BIC/TABLE1或LV_DATE>
LV_DATETO。
退出。
ENDIF。
*基于有效日期和有效日期
* duration
的附录格式以每日格式创建条目 到RESULT_PACKAGE分配的行

-/BIC/CARC0200 = -/BIC/E02MATNR。
-/BIC/CSTC0100 = -/BIC/E02WERKS。
-/BIC/CARC0302 = -/BIC/E02ZRANGE。
-CALDAY = LV_DATE。
-/BIC/G_MCC2013 =``。
-/BIC/CARC0405 = -/BIC/TABLE2
-/BIC/CARC0406 = -/BIC/TABLE1。
* ****************************************************** *******************
-RECORDMODE = -RECORDMODE。
-RECORD = LV_COUNT。
** ****************************************************** ******************
LV_DATE = LV_DATE +1。
LV_COUNT = LV_COUNT + 1.
ENDDO。
ENDLOOP。
< br>从RESULT_PACKAGE中删除相邻重复项
比较/BIC/CARC0200
/BIC/CSTC0100 CALDAY。

谢谢。