点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
在我的问题上需要您的帮助。
我正在尝试提高旧报表程序的性能。 GLPCA表上有一个选择查询,该查询将2400000条记录取入到it_glpca中。
选择后,这些记录将移动到另一个内部表,即it_glpca_temp。
现在,it_glpca_temp itab由kunnr排序。
更改代码之前:
选择glpca进入it_glpca。
it_glpca_temp [] = it_glpca []。
按kunnr排序it_glpca_temp。
更改代码后:
我将it_glpca_temp的声明更改为按类型排序的内部表。 以前是标准表类型。 我这样做是为了避免在具有大量记录的内部表上使用sort命令。
程序以" TSV_TNEW_PAGE_ALLOC_FAILED"转储说"没有更多的可用内存向内部表添加行"。
之所以发生这种情况,是因为it_glpca表包含大量数据。 较少的记录数不会发生此转储。 我检查了。
没有其他方法可以限制选择标准。 这些数据是针对单个公司代码的,我们对选择标准的限制不能超过已经存在的限制。
我的问题;
如何避免代码带来的运行时错误-> it_glpca_temp [] = it_glpca []。
我在进行转换(将数据从itab类型标准表移动到itab类型排序表)是否错误?
任何建议都将受到欢迎。
你好Raghu,
您无需声明将整个内部表复制到另一个排序表中,而只需声明包含辅助排序键的第一个标准表(从ABAP 7.0 EhP2开始就可用)。
当使用辅助键访问标准表时,标准表的行为类似于已排序的表,并且与在程序中使用相同数据维护两个内部表相比,它消耗的内存更少。 请检查DEMO_SECONDARY_KEYS报告以了解如何使用它(如果您的系统中不存在该报告,则该功能不可用)。
此致。
你好泰勒斯,
非常感谢您的答复。
拥有it_glpca和it_glpca_temp的目的是将客户数据更新到it_glpca_temp表中。 最初,it_glpca表具有不同的排序顺序。 it_glpca由racct rassc locco rprctr kostl排序。 此类用于填充最终输出表。 考虑到其中的巨大数据,我们不能像您建议的那样声明KUNNR。 我应该把这一点放在问题描述中。
it_glpca_temp由Kunnr排序,仅用于将客户字段LOCCO和VBUND从kNA1表更新到it_glpca表中。
请让我知道您的输入。
一周热门 更多>