收集ACDOCA条目会导致性能问题

2020-08-18 05:58发布

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

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


大家好,

我正在查询ACDOCA表以在S4中获取大约1M条目。

然后我在每个条目处循环查看我的利润中心值。

在匹配利润中心值的情况下,我会根据自己的值更改货币金额字段。

然后,我使用COLLECT合并每个利润中心的结果。

这会导致性能问题。

有帮助吗?

此致

Bikram。

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

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


大家好,

我正在查询ACDOCA表以在S4中获取大约1M条目。

然后我在每个条目处循环查看我的利润中心值。

在匹配利润中心值的情况下,我会根据自己的值更改货币金额字段。

然后,我使用COLLECT合并每个利润中心的结果。

这会导致性能问题。

有帮助吗?

此致

Bikram。

付费偷看设置
发送
4条回答
追夢秋陽
1楼-- · 2020-08-18 06:08

为什么不将逻辑"压低"到数据库级别,并避免传输所有数据。 通过使用CASE表达式调整OSL字段的值并使用GROUP BY,您可以达到相同的目的。 这样,您就可以将聚合的数据记录传输到ABAP层。

hengyuye
2楼-- · 2020-08-18 06:19

示例代码:

从acdoca到表it_table的相应字段中选择gjahr belnr docln ryear tsl wsl wsl2 wsl3 hsl ksl osl msl prctr

rldnr = lc_0L AND gjahr EQ gjahr AND segment IN segment AND poper = XXX and racct IN XXX。

在it_table上循环进入ls_collect。

如果ls_collect-prctr + 0(3)='XXX'。
ls_collect-osl = ls_collect-ksl。
endif。
clear: ls_collect-prctr。
将ls_collect收集到ity_table中。
清除:ls_collect。
endloop。

落灬小鱼
3楼-- · 2020-08-18 06:20

您可以显示更多详细信息吗? 仅凭这些信息很难回答。

据我了解,您怀疑执行COLLECT语句时的性能问题吗? 它是标准表吗?
能否显示内部表的定义以及如何使用内部表(特别是对于任何写访问而言)?

Bunny_CDM
4楼-- · 2020-08-18 06:19

您好

< p>您要合并每个"成本中心"的结果,但是您要清除LS_COLLECT结构中的"成本中心"字段。

在我看来,您的COLLECT语句的结果将与起点(表IT_TABLE)几乎相同。 这是因为您的结构中有太多类似字符的字段(GJAHR,BELNR,DOCLN)。 这些字段将用于收集您的数据。

问候,
Mateusz

一周热门 更多>