ABAP 内表类型

8 篇文章 0 订阅

ABAP内表类型,有3大类:1 标准 2 排序 3 hash

1. 标准

这种是经常使用的类型,查找,修改都频繁的内表,就使用该类型

2.排序

如果经常需要查找内表的记录,但是不确定是否记录有唯一主键时使用

3.Hash

如果经常需要查找内表的记录,但是确定是否记录有唯一主键时使用

对一般开发abap人员来说,只要会使用第一种类型的内表即可(+binary search),就可以完成大部分工作。但对于BW的转换来说,就需要这3种类型非常熟悉.
1 针对有大数据量的查找操作:Hash > sort ==标准(+binary search)>标准
2 有大量修改内表记录的操作:标准 > Sort /Hash (不确定sort和hash的性能)

对BW TR来说,Sort /Hash太有用了。

  1. 基本很少修改内表数据,就是一次取数,为后续读取
  2. 多层嵌套循环性能问题
第二索引

内表也有第二索引的key,这个功能在对一个内表有多种查询方式的时候,特别有用。不用再去复制一个内表然后排序。

https://blog.csdn.net/weixin_42646630/article/details/113919809

**********************************************************************
* secondary key for internal table
**********************************************************************
 
DATA: ls_sflight     TYPE sflight,
      lt_sflight_hsh TYPE HASHED TABLE OF sflight WITH UNIQUE KEY carrid connid fldate
                     WITH NON-UNIQUE SORTED KEY sec_key COMPONENTS carrid planetype.
 
SELECT * FROM sflight INTO TABLE lt_sflight_hsh
  UP TO 100 ROWS
 WHERE carrid = 'AA' OR carrid = 'LH'.
 
* Access data via 'primary table key' - Hash search
READ TABLE lt_sflight_hsh INTO ls_sflight
                WITH TABLE KEY carrid = 'AA'
                               connid = '017'
                               fldate = '20171226'.
 
* Access data via normal key - linear searchxian
READ TABLE lt_sflight_hsh INTO ls_sflight
                      WITH KEY carrid = 'AA'
                               planetype = 'A380-800'.
 
* Access data via secondary key -  binary search
READ TABLE lt_sflight_hsh INTO ls_sflight
                      WITH TABLE KEY sec_key
                          COMPONENTS carrid = 'AA'
                                     planetype = 'A380-800'.  

建议bw 顾问去了解下这些功能,是解决性能问题非常好用的技能,而且代码也会变的简洁清晰。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值