Maximum size of dynamic data objects
In addition to the maximum memory size that the current
internal mode can request for
dynamic data objects, their maximum size is limited by the following factors:
- An upper limit for the amount of digits in strings and rows in internal tables results from the
fact that they are adressed internally and in ABAP statements via 4 byte integers, which limits them to 2.147.483.647.
- The size of strings and hash tables is limited by the biggest memory block that can be requested in one chunk. This is a maximum of 2 GB and is usually further limited via the
profile parameter ztta/max_memreq_MB.
For strings, the value of the profile parameter directly represents the maximum size that can be occupied.
The maximum amount of rows of hash tables depends on the required size of the hash administration that
has to be stored there. Currently, it can be calculated from the largest power of two that fits into
the value of the profile parameter divided by 8. For example, if the profile parameter specifies 250
MB, a hash table can contain a maximum of rougly 16 million entries (128 times 1024 to the power of two divided by 8).
The actual maximum size is generally smaller as given by the above limits, for the overall available memory is normally not only used by a string or an internal table.