点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好, 我们最近在DBACOC...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)您好, 我们最近在DBACOC...
加入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>
您好奎恩·杜安·曼
感谢您的答复,我认为数据已排序。
但是选择查询使用的是我上面提到的重复日期:
@ 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
一周热门 更多>