SAP 的内表类型

SAP的三种内表

  (2011-10-31 16:43:36)
标签: 

sap

 

内表

 

杂谈

分类: ABAP-Basic

概述:

标准表:关键字为STANDARD TABLE, 系统为该表的每一行数据生成一个逻辑索引。 填充标准表时,可以将数据附加在现有行之后,也可以插入到指定的位置,程序对内表行的寻址操作可通过关键字或索引进行。在对表进行插入、删除等操作时,各数据行在内存中的位置不变,系统仅重新排列各数据行的索引值。

排序表:关键字为 SORTED TABLE, 也具有一个逻辑索引,不同之处是排序表总是按其关键字升序排序后再进行存储,其访问方式与标准表相同。

哈希表:关键字为 HASHED TABLE, 没有索引,只能通过关键字来访问。系统用哈希算法管理表中的数据,因而其寻址一个数据行的时间和表的行数无关。

 

除以上三种类型之外,还有一般性类型,即索引表 INDEX TABLE和人意表ANY TABLE. 一般性类型可以用于类型定义中,但不能用于声明一个内表对象,因为它并没有指明任何明确的表类型,因而系统无法确定对其操作方式。一般性类型还可以用于指明字段符号和接口参数的类型,以增加这些元素的适用性,其实际类型可能在运行期内才能够确定。

 

Standard Table

        Processed mainly by Index Operation

        Key is always non-unique

        Can be filled very quickly

Sorted Table

         Access mainly by a Fixed Key (efficient)

         Index operation seldom

         The response time for key access is logarithmically proportional to

    the number of table entries

          Key can be unique or non-unique

          Data is inserted as per key

Hashed Table

        Access only by key (fast)

        Key must be unique

        No index operation

        The response time is independent of the number of table entries,

    and is constant, since the system access the table entries using a 

    hash algorithm

 

 

Table选择,以及性能优劣:

Slowest table accesses are sequential and grow linearly with n.

¨  READ standard table WITH (TABLE) KEY (no BINARY SEARCH)

¨  LOOP at standard/hashed table.

¨  READ sorted/hashed table WITH KEY (not TABLE KEY).

Faster accesses use a sorted index and have a weak dependence on n.

¨  READ standard table WITH (TABLE) KEY using BINARY SEARCH)

¨  READ sorted table WITH TABLE KEY.

¨  LOOP at sorted table.

Fastest access independent of n.

¨  READ hashed table WITH TABLE KEY.

¨  READ standard table WITH INDEX

¨  READ sorted table WITH INDEX.

Note: n = number of lines in the internal table


三种内表特点:
SAP的三种内表


读取方式:
SAP的三种内表

NON-UNIQUE|UNIQUE :NON-UNIQUE|UNIQUE(非特有/特有)决定了内表中具有相同关键字的数据行是否可以重复出现(即如果指明为UNIQUE KEY,则通过表关键字能够唯一确定内表的行,在程序中不能插入具有相同表关键字的多行数据条目),其中标准表不能用UNIQUE关键字,且无需特别制定NON-UNIQUE关键字;排序表两者都可以;哈希表不能用NON-UNIQUE关键字,且必须指定UNIQUE关键字。

INITIAL SIZE n: n可以为0或者任意正数,除非系统管理员限定一个最大值。无论n值选择为多大,都不会影响程序的正确性,但可能会影响程序效率。 如果初始值n小于所需,系统会根据需要自动要求增加内存大小,这个过程需要占用一定的时间;如果n值过大,实际数据的行数少于定义,则会造成内存分配的浪费。 
所以n值的选择应该尽量接近于实际所需。如果n为0或者不指定,程序会为内表对象分配8KB大小的内存。所以,如果比较小,不要把该值设为0,避免浪费内存。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值