Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Sorted internal table

Former Member
0 Kudos

Hi All,

will the sorted internal tables help in performance?If yes how?

Thanks,

Rakesh.

1 ACCEPTED SOLUTION

matt
Active Contributor
0 Kudos

Reading from a sorted standard table is quicker than a non-sorted standard table, if you use the BINARY SEARCH addition. Reading from a sorted table is quicker than reading from a standard table. How? Because it permits the use of algorithms which take advantage of the sort order to do faster reads. If the table is not sorted in anyway, then the only thing to do is go from the beginning, a record at a time, until you reach a match. Which is fine if your record is near the beginning, but very bad if it is at the end.

I hope that sorts your query.

matt

5 REPLIES 5

matt
Active Contributor
0 Kudos

Reading from a sorted standard table is quicker than a non-sorted standard table, if you use the BINARY SEARCH addition. Reading from a sorted table is quicker than reading from a standard table. How? Because it permits the use of algorithms which take advantage of the sort order to do faster reads. If the table is not sorted in anyway, then the only thing to do is go from the beginning, a record at a time, until you reach a match. Which is fine if your record is near the beginning, but very bad if it is at the end.

I hope that sorts your query.

matt

Former Member
0 Kudos

hi rakesh,

This is the most appropriate type if you need a table which is sorted as you fill it. You fill sorted tables using the INSERTstatement. 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 WHEREcondition.

The use of field symbols takes this performance concept one step further.

Hope this is helpful, Do reward.

Edited by: Runal Singh on Dec 18, 2007 6:39 PM

Former Member
0 Kudos

Sorting an internal table woul help read an internal table very quickly, which would contribute to the performance of the code.

Cheers,

Ram

Former Member
0 Kudos

Hi Rakesh,

Yes sorted internal table help in performance because it use Binary search for read the internal table and for checking also , Binary Search is Faster than any Search techinques, in performance wise it is useful.

Plzzz Reward if useful,

Mahi.

Former Member
0 Kudos

Hi Rakesh,

Actually performance of internal table completely depends on the type of data you are handling.

Sorted internal table does improve the performance but mind you sorting the data itself also takes time. So, it all depends on what is your requirement.

Below is the difference between the types of internal table and when they can be used.

Standard Internal Tables

Standard tables have a linear index. You can access them using either the index or the key. If you use the key, the response time is in linear relationship to the number of table entries. The key of a standard table is always non-unique, and you may not include any specification for the uniqueness in the table definition.

This table type is particularly appropriate if you want to address individual table entries using the index. This is the quickest way to access table entries. To fill a standard table, append lines using the (APPEND) statement. You should read, modify and delete lines by referring to the index (INDEX option with the relevant ABAP command). The response time for accessing a standard table is in linear relation to the number of table entries. If you need to use key access, standard tables are appropriate if you can fill and process the table in separate steps. For example, you can fill a standard table by appending records and then sort it. If you then use key access with the binary search option (BINARY), the response time is in logarithmic relation to

the number of table entries.

Sorted Internal Tables

Sorted tables are always saved correctly sorted by key. They also have a linear key, and, like standard tables, you can access them using either the table index or the key. When you use the key, the response time is in logarithmic relationship 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, and you must specify either UNIQUE or NON-UNIQUE in the table definition. Standard tables and sorted tables both belong to the generic group index tables.

This table type is particularly suitable if you want the table to be sorted while you are still adding entries to it. You fill the table using the (INSERT) statement, according to the sort sequence defined in the table key. Table entries that do not fit are recognised before they are inserted. The response time for access using the key is in logarithmic relation to the number of

table entries, since the system automatically uses a binary search. Sorted tables are appropriate for partially sequential processing in a LOOP, as long as the WHERE condition contains the beginning of the table key.

Hashed Internal Tables

Hashes tables have no internal linear index. You can only access hashed tables by specifying the key. The response time is constant, regardless of the number of table entries, since the search uses a hash algorithm. The key of a hashed table must be unique, and you must specify UNIQUE in the table definition.

This table type is particularly suitable if you want mainly to use key access for table entries. You cannot access hashed tables using the index. When you use key access, the response time remains constant, regardless of the number of table entries. As with database tables, the key of a hashed table is always unique. Hashed tables are therefore a useful way of constructing and

using internal tables that are similar to database tables.

Please reward points if helpful.

Regards

Sourabh Verma