三种内表 访问方式

ABAP提供了三种类型的内表, 即:标准表(Standard Table), 排序表(Sorted Table), 哈希表(Hashed Table)。在未声明内表类型时,系统会将类型默认为标准表。

然而,标准表其实并不适用于所有的业务场景,我们应当根据实际的需求,定义使用合适类型的内表。

1. 内表的类型

让我们回顾下不同内表的访问方式。标准表和排序表是可以既通过index访问,有可通过key访问;而哈希表只能通过键值访问。

三种内表的特征如下表:

2. 使用原则

标准表:当数据量较小(<100 entries), 并既需要使用索引访问,又需要通过不同的键值访问时,可以定义使用标准表。当通过键值访问时,应当使用SORT + BINARY SEARCH的语法,

也即使用二分查找算法替代顺序查找。在排序时,应尽量明确指定排序的字段。

排序表:当访问内表的主要方式是通过“主键访问”时,应定义使用排序表。排序表的主键

可以不唯一。

哈希表:完全通过主键访问数据,并且在数据量较大时,应使用Hash表。在数据量不大时,Hash表的查找速度和Sorted表类似。在某种程度上,Hash表的性质等同于主键唯一的

Sorted表。

3. 注意事项

避免通过顺序查找的方式访问含有大量数据的内表;

避免在嵌套的循环中,通过顺序查找的方式访问内表;

无论哪一种内表,都要避免内表数据过大的情况发生,因为CPU的内存是有限的,无限制

增加内表的数据量会至系统DUMP;

对于大数量的情形,应采用分批次、分包的处理方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值