AND OR组合选择性能较差

2020-09-18 23:12发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我可以提高这种选择语句的性能吗?...

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

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


我可以提高这种选择语句的性能吗?

选择*从ZDB_TABLE1到DATA_PACKAGE中所有条目的表itab中,其中SALESORG = l_salesorg AND(SOLD_TO = DATA_PACKAGE-SOLD_TO或SHIP_TO = DATA_PACKAGE-SHIP_TO或/BIC/zfield1 = DATA_PACKAGE-/BIC)。

尽管创建了三个索引,该语句仍需要花费很长时间来执行。

salesorg + sold_to

salesorg + ship_to

salesorg + zfield1

执行计划:

选择*从" zDB_table1"中,在" SALESORG" =:A0 AND(" SOLD_TO" =:A1或" SHIP_TO" =:A2或"/img/bic/zfield1" =:A3)或" SALESORG" =:A4 AND (" SOLD_TO" =:A5 OR" SHIP_TO" =:A6 OR"/img/bic/zfield1" =:A7)OR" SALESORG" =:A8 AND(" SOLD_TO" =:A9 OR" SHIP_TO" =:A10 OR"/img/bic/zfield1" =:A11)或" SALESORG" =:A12 AND(" SOLD_TO" =:A13或" SHIP_TO" =:A14或"/img/bic/zfield1" =:A15)或" SALESORG" =:A16 AND( " SOLD_TO" =:A17或" SHIP_TO" =:A18或"/img/bic/zfield1" =:A19)

6条回答
当学会了学习
2020-09-18 23:18

最好的解决方案是尝试对所有条目使用联接而不是所有联接。

Select语句只能使用一个表索引。 它不会使用所有三个的组合。 因此,我可以看到缓慢的速度。 尝试执行3条select语句而不是1条可能更好。 一个使用卖给,然后一个使用运送到,然后一个使用zfield1。 我知道多次访问数据库通常不是最好的选择,但在这种情况下可能是最好的选择。 您可能会得到一些重复的记录,但是您可以删除它们。

此外,别忘了先检查以确保内部表不为空,否则您将从表中获取所有记录。

一周热门 更多>