SAP ABAP select语句性能优化之高级教程

更多内容关注公众号:SAP Technical 

各位可以关注我的公众号:SAP Technical

select where条件顺序影响sql执行效率,本例中条件包含必输、等于、不等于、可输等,他们的顺序随便排列么?
CASE:
SELECT-OPTIONS: s_bukrs FOR t001-bukrs OBLIGATORY DEFAULT 'H100',"公司代码
                s_vkorg FOR vbak-vkorg OBLIGATORY DEFAULT 'H100',"销售组织
                s_vtweg FOR vbak-vtweg OBLIGATORY DEFAULT '50',"分销渠道
                s_spart FOR vbak-spart,           "产品组
                s_matnr FOR mara-matnr.           "商品编码

SELECT k~erdat
     p~vbeln
     p~posnr
     p~matnr
     p~pstyv
     p~kwmeng
     p~erdat AS erdat_p
     p~kzwi1
INTO TABLE gt_vbkp
FROM vbak AS k
INNER JOIN vbap AS p ON p~vbeln = k~vbeln
WHERE k~erdat <= lv_erdaten
AND k~erdat >= lv_erdatbe
AND k~vkorg IN s_vkorg
AND k~vtweg IN s_vtweg
AND k~spart IN s_spart
AND p~matnr IN s_matnr
AND p~pstyv = 'ZTAN'.
复制代码
select语句需要注意以下几点:
1、小表关联大表
2、有索引走索引,若果数据量大,自建适合的索引
3、等于、必输r_range放在最前,不等于放在中间、可输放在最后
4、条件字段的顺序尽量和数据字典中顺序一致
优化之后:
SELECT k~erdat
       p~vbeln
       p~posnr
       p~matnr
       p~pstyv
       p~kwmeng
       p~erdat AS erdat_p
       p~kzwi1
INTO TABLE gt_vbkp
FROM vbak AS k
INNER JOIN vbap AS p ON p~vbeln = k~vbeln
WHERE k~vkorg IN s_vkorg
  AND k~vtweg IN s_vtweg
  AND p~pstyv = 'ZTAN'
  AND k~erdat <= lv_erdaten
  AND k~erdat >= lv_erdatbe
  AND k~spart IN s_spart
  AND p~matnr IN s_matnr.

发布了675 篇原创文章 · 获赞 96 · 访问量 92万+

猜你喜欢

转载自blog.csdn.net/SAPmatinal/article/details/103948451