OPENSQLWhere中的字段顺序


 

以下文章来源于ABAPer孙亮 ,作者孙小亮

ABAPer孙亮
ABAPer孙亮

绝对“有用 实用”的ABAP与Excel“原创”干货,不定期发布!可加vx: 286503700交流

好久没更,今天发文辟个谣,尽量减少圈里的这种以讹传讹,以及不合理的代码规范要求。


即:如果使用了表的索引,则OPEN SQL中Where的字段顺序,要和索引中的字段顺序保持一致。

辟谣:错误!


这个说法的来源在于对PA教程的误解。打开BC402(我这里找不到英文版了),在OPEN SQL章节对于索引的部分中有如下的解释。


OPENSQLWhere中的字段顺序

OPENSQLWhere中的字段顺序

通过这两个图,大家可以看到PA教程里对OPEN SQL中Where从句的索引使用的建议和说明。

这里说的是,尽量从左侧指定,是指尽量用索引定义的左边的字段,而非在Where条件中先指定索引左侧字段。

如果不从左侧指定,会导致索引树匹配时出现模糊匹配,导致效率降低!


OPEN SQL具体执行的时候,是系统先把他转成基本SQL,然后交给数据库,数据库再去执行的。SQL在真正执行时,具体是什么样的执行逻辑,是由数据库层面决定的。OPEN SQL层面,如果不加Hints的话,是办不了这个事情的。


有兴趣的朋友,可以做个测试,测试一下where从句里的字段顺序调整前后,用ST05跟踪一下SQL的执行计划,看看有无差别。


——————

一切用测试来检验,拒绝盲目轻信,拒绝以讹传讹!


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值