Choosing a Table Type
The
table type (and particularly the access method) that you will use
depends on how the typical internal table operations will be most
frequently executed.
Standard tables
This
is the most appropriate type if you are going to address the individual
table entries using the index. Index access is the quickest possible
access. You should fill a standard table by appending lines (ABAP APPEND
statement), and read, modify and delete entries by specifying the index
(INDEX option with the relevant ABAP command). The access time for a
standard table increases in a linear relationship with the number of
table entries. If you need key access, standard tables are particularly
useful if you can fill and process the table in separate steps. For
example, you could fill the table by appending entries, and then sort
it. If you use the binary search option with key access, the response
time is logarithmically proportional to the number of table entries.
Sorted tables
This
is the most appropriate type if you need a table which is sorted as you
fill it. You fill sorted tables using the INSERT statement. Entries are
inserted according to the sort sequence defined through the table key.
Any illegal entries are recognized as soon as you try to add them to the
table. The response time for key access is logarithmically proportional
to the number of table entries, since the system always uses a binary
search. Sorted tables are particularly useful for partially sequential
processing in a LOOP if you specify the beginning of the table key in
the WHERE condition.
Hashed tables
This
is the most appropriate type for any table where the main operation is
key access. You cannot access a hashed table using its index. The
response time for key access remains constant, regardless of the number
of table entries. Like database tables, hashed tables always have a
unique key. Hashed tables are useful if you want to construct and use an
internal table which resembles a database table or for processing large
amounts of data.
Table type
The table type determines how ABAP will access individual table entries. Internal tables can be divided into three types:
Standard
tables have an internal linear index. From a particular size upwards,
the indexes of internal tables are administered as trees. In this case,
the index administration overhead increases in logarithmic and not
linear relation to the number of lines. The system can access records
either by using the table index or the key. The response time for key
access is proportional to the number of entries in the table. The key of
a standard table is always non-unique. You cannot specify a unique key.
This means that standard tables can always be filled very quickly,
since the system does not have to check whether there are already
existing entries.
Sorted
tables are always saved sorted by the key. They also have an internal
index. The system can access records either by using the table index or
the key. The response time for key access is logarithmically
proportional to the number of table entries, since the system uses a
binary search. The key of a sorted table can be either unique or
non-unique. When you define the table, you must specify whether the key
is to be unique or not. Standard tables and sorted tables are known
generically as index tables.
Hashed tables
have no linear index. You can only access a hashed table using its key.
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. The key of a hashed table must be unique. When you define the
table, you must specify the key as UNIQUE.
No comments:
Post a Comment