举例:DATA gt_syl TYPE STANDARD TABLE OF vbap WITH NON-UNIQUE KEY vbeln.
排序表:
必须指定KEY作为排序参考字段,可以指定UNIQUE KEY或者是NON-UNIQUE KEY
可以使用INDEX和KEY来查询
已经按照KEY排序,不可以再排序
举例:DATA gt_syl TYPE SORTED TABLE OF vbap WITH NON-UNIQUE KEY vbeln.
哈希表:
必须指定KEY,并且是UNIQUE KEY
不可以使用INDEX查询
查询时间和记录数无关
哈希表的最大特点是查询时间和记录数无关,是个固定值。
举例:DATA gt_syl TYPE HASHED TABLE OF vbap WITH UNIQUE KEY vbeln.
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
标准表:
注:NON-UNIQUE KEY代表内表里该字段可以重复,如果是UNIQUE KEY则代表该字段不能重复,不然往内表里插入重复KEY时会发生运行时错误。
举例:DATA gt_syl TYPE STANDARD TABLE OF vbap WITH NON-UNIQUE KEY vbeln.
排序表:
举例:DATA gt_syl TYPE SORTED TABLE OF vbap WITH NON-UNIQUE KEY vbeln.
哈希表:
哈希表的最大特点是查询时间和记录数无关,是个固定值。
举例:DATA gt_syl TYPE HASHED TABLE OF vbap WITH UNIQUE KEY vbeln.
Key is always non-unique
Can be filled very quickly
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
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
标准表是最常用的表,但在内表记录条数很多时,对排序表查询的效率明显比标准表高,因为系统对标准表是进行顺序查询的,而对排序表是进行二分查询的。
可以对标准表用SORT先进行排序,然后再进行BINARY SEARCH(即二分法查找)的查询,效率上基本等同于排序表,不过排序本身也是消耗时间。
排序表比起标准表的主要好处是它在程序里任何时候都是排序过的,如果某个内表主要是用来查询的,不需要修改,那么这时建议使用排序表。
除上面三种标准类型外,还有一般性类型,即索引表(INDEX TABLE)和任意表(ANY TABLE)。
一般性类型可以用于类型定义中,但不能用于声明一个内表对象,因为它并没有指明任何明确的表类型,因而系统无法确定对其操作方式。一般性类型还可以用于指明字段符号和接口参数的类型,其实际类型可能在运行期内才能够确定。