ABAP选择查询性能变慢(MSSQL)

2020-09-23 03:41发布

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

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


我在所有条目的表上写了一个选择查询。 看起来像这样:

SELECT * FROM TABLE_A INTO TABLE LT_TABLE

对于IT_INPUT_TABLE中的所有条目

FIELD_A = IT_INPUT_TABLE-FIELD_A

AND FIELD_B = IT_INPUT_TABLE-FIELD_B

1。在表TABLE_A的字段FIELD_A和FIELD_B上有一个辅助索引

2。 我正在检查IT_INPUT_TABLE是否不是初始的,并且IT_INPUT_TABLE是否按字段FIELD_A和FIELD_B排序。 删除比较FIELD_A和FIELD_B的重复条目

3。 IT_INPUT_TABLE的最大记录数为1000,可以从TABLE_A中获取大约5000-20000条记录

4。 有多个进程同时运行此查询

问题:

运行此查询近60-70次后(3个并行进程每个查询20次。每次数据都不相同,因为我们拆分数据并进行查询。我们无法一起查询所有内容,因为其中有将近1500万条记录 TABLE_A)选择查询的性能开始下降。 最初,它将耗时10秒,然后是50秒,经过几个过程100次,最后接近700秒。

请帮助!

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

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


我在所有条目的表上写了一个选择查询。 看起来像这样:

SELECT * FROM TABLE_A INTO TABLE LT_TABLE

对于IT_INPUT_TABLE中的所有条目

FIELD_A = IT_INPUT_TABLE-FIELD_A

AND FIELD_B = IT_INPUT_TABLE-FIELD_B

1。在表TABLE_A的字段FIELD_A和FIELD_B上有一个辅助索引

2。 我正在检查IT_INPUT_TABLE是否不是初始的,并且IT_INPUT_TABLE是否按字段FIELD_A和FIELD_B排序。 删除比较FIELD_A和FIELD_B的重复条目

3。 IT_INPUT_TABLE的最大记录数为1000,可以从TABLE_A中获取大约5000-20000条记录

4。 有多个进程同时运行此查询

问题:

运行此查询近60-70次后(3个并行进程每个查询20次。每次数据都不相同,因为我们拆分数据并进行查询。我们无法一起查询所有内容,因为其中有将近1500万条记录 TABLE_A)选择查询的性能开始下降。 最初,它将耗时10秒,然后是50秒,经过几个过程100次,最后接近700秒。

请帮助!

付费偷看设置
发送
3条回答
Bunny_CDM
1楼 · 2020-09-23 04:32.采纳回答

感谢您的投入。 问题已解决。 我想我之前没有提供有关该问题的详细信息。 我在下面解释确切的问题和解决方法:

1。 问题仅在测试系统中发生。 在开发系统中,代码运行良好。 在测试系统中,查询性能较早。

2。 数据库表发生了更改,并已通过传输发送到测试系统。 但是,由于查询性能较慢,看来索引没有正确调整。

决议

我们将整个表(使用SAP传输)重新传输到测试系统,这导致二级索引调整,并且查询性能自动固定。

谢谢您的帮助。

此致

查尔斯

当学会了学习
2楼-- · 2020-09-23 04:29

如果您要访问标准表,请共享名称,这可以帮助我们为您提供更集中的答案。

我不明白您的第3点和第4点:您是否正在并行处理同一份报告? 为什么? 而且,如果IT_INPUT_TABLE始终相同,那么为什么会有1.5万条差异记录?

您的60-70岁是工作台测试还是真实的业务案例(我正在尝试说明哪种方法可能需要这种方法)?

从您给出的解释以及我所看到的看来,您似乎在使用大量资源而没有释放它们,特别是内存空间。

您是否使用SAT交易检查了报告/查询/其他内容?

昵称总是被占用
3楼-- · 2020-09-23 04:14

在大多数情况下,INNER JOIN的表现要比FOR ALL ENRESES更好。

如果您无法执行此操作(例如,BI转换中的例行程序),请在 support.sap.com 的注释,它告诉您FAE使用哪个数据库提示。

一般提示-仅选择所需的字段。 选择*可以单独杀死性能。

一周热门 更多>