点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好,
我们最近在DBACOCKPIT中注意到,为标准程序" RFITEMAP "安排的后台作业占用了很高的CPU利用率(超过64%)。
引起该问题的SQL查询如下:
包含文件的名称: RFITEM_INC
查询:
围绕线号 537:
选择(gt_spec_fields)
从bkpf
进入wa_bkpf的相应字段
gt_pos_posted
中的所有条目,其中bukrs = gt_pos_posted-bukrs
AND belnr = gt_pos_posted-belnr
gjahr = gt_pos_posted-gjahr。
在进一步分析中,我们发现这是一个性能错误,因为此查询未遵循针对所有条目编写选择查询的基本最佳实践。
1)在用于所有条目之前,不会删除重复的数据
2)在对所有条目使用数据之前未对数据进行排序
以下是我们在DBACOCKPIT中注意到的数据(重复且未排序):
1。 在Where子句
中传递的重复数据 @ P80 nvarchar(10)N'0100009323'
@ P81 nvarchar(4)N'2018'
@ P82 nvarchar(4)N'8750'
@ P83 nvarchar(10)N' 0100009323'
@ P84 nvarchar(4)N'2018'<@> @ P85 nvarchar(4)N'8750'
@ P86 nvarchar(10)N'0100009323'
@ P87 nvarchar(4) N'2018'
@ P88 nvarchar(4)N'8750'
2。 在where子句中传递未排序的数据
@ P39 nvarchar(4)N' 2018 '
@ P40 nvarchar(4)N'8370'
@ P41 nvarchar(10)N'4600000023'
@ P42 nvarchar(4)N' 2019 '
@ P43 nvarchar(4)N'8370'
@ P44 nvarchar(10)N'5900000016'
@ P45 nvarchar(4 )N' 2018 '
此修复程序没有可用的注释。 请解决此性能问题,并告诉我们!
感谢与问候,
拉曼德普·考尔
sub>
sub>
gt_pos_posted是一个包含键bukrs,belnr,gjahr,buzei,budat的排序表,它会根据这些键自动进行排序,因此您无需对其进行排序。 也由于以下原因而无法复制:
https://help.sap .com/doc/abapdocu_750_index_htm/7.50/zh-CN/abaptypes_primary_key.htm#!ABAP_ALTERNATIVE_1 @ 1 @
所以您应该先检查您的输入
好,我得到了您的理想。 但是在程序的那一点上,您没有可以用来修改该表的增强功能。 也许您应该提出这个问题来解决。 另外,我建议您应该在测试程序中尝试执行该查询,以确保性能问题是由于该表中的重复项引起的。
如果您发现标准sap代码中的错误, 然后在 support.sap.com
报告在此处发布详细信息并请求修复是不可能的。
您好奎恩·杜安·曼
感谢您的答复,我认为数据已排序。
但是选择查询使用的是我上面提到的重复日期:
@ P80 nvarchar(10)N'0100009323'
@ P81 nvarchar(4)N'2018'
@ P82 nvarchar(4)N'8750'
@ P83 nvarchar(10)N' 0100009323'
@ P84 nvarchar(4)N'2018'<@> @ P85 nvarchar(4)N'8750'
@ P86 nvarchar(10)N'0100009323'
@ P87 nvarchar(4) N'2018'
@ P88 nvarchar(4)N'8750'
此问题的原因是您提到此表具有键(bukrs,belnr,gjahr,buzei,budat),
所以这意味着5个字段的组合将是唯一的,但这并不意味着3个字段的组合" bukrs,belnr和gjahr不能重复"。
此查询的where子句使用这3个字段,这些字段与我发布的数据一样重复。
建议的解决方法:将该内部表的数据放入某个临时表中。
然后根据这三个字段(bukrs,belnr和gjahr)删除重复的条目。
然后在where子句中使用此临时表。
这将解决此查询引起的性能问题。
感谢与问候,
Ramandeep Kaur
一周热门 更多>