[性能] SAP销售订单取数逻辑优化---索引表

我也分享了许多篇性能优化的帖子,主要集中在sql、语法及合理的索引方面。我们在表上加索引确实能大幅提升性能,但是索引的数量、所需字段及利用率都是我们在新建索引时需要考虑的,对于大多数abaper而言,也就是稀里糊涂的新建了索引。这里我不对新建索引进行展开讲解,建议没有深厚功底的小粉不要乱建索引。
其实在sql优化上还有一个大招,只是他需要我们实际项目去积累,就是找到相应的替代表,而替代表中最好的莫过于索引表了。SAP在标准程序中也新建了一些索引表来提升标准程序的性能,下面我们来看一个销售订单取数优化的例子。

场景:根据合作伙伴、物料或者交货到期时间来获取销售订单号

分析:合作伙伴VBPA,物料VBAP,交货到期时间在交货单上,很明显我们这样也是可以取到SO,但是性能就很差了

优化方法:很幸运SAP为这些条件新建了索引表
VAKPA       客户索引表
VAPMA      物料索引表
VEPVG      交货到期索引表


附销售订单相关表:
VBAK         订单头
VBAP         订单行
VBUK         订单头状态
VBUP         订单行状态
VBBE         占用库存(订单做了交货单后会转到交货单上,发货过账后消失)
VBPA         合作伙伴
VBEP         计划行数据
VBUV         如果订单项不完整会把不完整数据放到这个表
VBKD         订单的采购订单号码等
KONV         价格
JSTO         状态对象信息
JEST         单独对象状态
JCDS        为系统/用户状态更改文档(表 JEST)
S066         未清订单: 信贷管理
S009         CAS: 最后的凭证
S014         CAS 凭证信息


J开头的三个表是状态表,S开头的三个是信息结构表。

你可能感兴趣的:(ABAP,Table)