每次在itab中SELECT * from dtab for itab中的所有条目都循环遍历itab吗?

2020-09-07 22:18发布

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

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


只是想知道FOR ALL ENTRIES子句是否导致SELECT语句在dtab的每一行中循环遍历itab的所有行,以找出在将dtab的那一行添加到结果集中之前是否满足WHERE条件?/p>

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

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


只是想知道FOR ALL ENTRIES子句是否导致SELECT语句在dtab的每一行中循环遍历itab的所有行,以找出在将dtab的那一行添加到结果集中之前是否满足WHERE条件?/p>

付费偷看设置
发送
3条回答
一只江湖小虾
1楼-- · 2020-09-07 23:18

执行SQL跟踪并检查执行路径。

小灯塔
2楼-- · 2020-09-07 23:18

还请阅读注释 48230-SELECT ... FOR的参数 ALL ENTRIES语句,其中表示:

 SELECT ...对于itab中的所有条目,其中f = itab-f。
在运行时转换为多个SELECT,或者:
 SELECT ... WHERE f = itab [1] -f 
OR f = itab [2] -f
...
OR f = itab [N] -f

 SELECT ...在哪里输入(itab [1] -f,itab [2] -f,...,itab [N] -f)
< p> etc。

其中N取决于其他自定义...

浮生未央
3楼-- · 2020-09-07 23:07

语句的行为取决于某些系统参数(当然,附加到该SQL提示的其他任何参数) 声明),它也取决于您的版本和数据库

  • rsdb/prefer_join
  • rsdb/prefer_union_all
  • rsdb/prefer_in_itab_opt
  • rsdb/max_blocking_factor
  • rsdb/max_in_blocking_factor
  • 等等。

因此,按照马修的建议,请使用ST05 来执行SQL跟踪,并查看说明选项以获取有关系统的正确信息。

一周热门 更多>