Table Buffering
Table buffering increases performance when the records of the table are read.
The records of a buffered table are read directly from the local buffer of the application server on which the accessing transaction is running when the table is accessed. The table buffering eliminates time-consuming database accesses. The table access performance is improved by a factor of 10 to 100. The increase in speed depends on the structure of the table and on the exact system configuration. Buffering, therefore, can greatly increase system performance.
Buffered table records are stored in the main memory of the application server. If the memory is exhausted, the system discards the oldest table record accessed.
When you enter /$TAB in the command field, the system resets the table buffers on the corresponding application server. Only use this command if there are inconsistencies in the buffer. In large systems, it can take several hours to fill the buffers. The performance is reduced during this time.
Buffering Types
When a record of the table is accessed, all the records of the table are loaded into the buffer.
When a record of the table is accessed, all the records whose left-justified part of the key are the same are loaded to the buffer.
Only the record that was accessed is loaded into the buffer
Full Buffering
With full buffering, the table is either completely in the buffer or not at all. Whenever a record of the table is accessed, all of the table records are loaded into the buffer.
When you decide whether to fully buffer a table, you must take the table size, the number of read accesses, and the number of write accesses into consideration. The smaller the table is, the more frequently it is read and the less frequently it is written to, the better it is to fully buffer the table.
Generic Buffering
When one record of the table is accessed, all the records whose generic key fields agree with this record are loaded into the buffer. The generic key is a left-justified part of the primary table key. The generic key must be selected so that the generic areas are not too small, which would result in too many generic areas. Full buffering is preferred for the table that has few records for each generic area. If you choose a large generic key, too much data will be invalidated if there are changes to table entries, which would have a negative effect on the performance.
Single-Record Buffering
Differences between single-record buffering and the other buffering types are as follows:
To define table buffering, go to the ABAP Dictionary (transaction SE11), enter the table name, and choose Technical Settings. Choose the appropriate buffering option and buffering type. Alternatively, you can use transaction SE13.
As the buffers reside locally on the application servers, buffers must be synchronized after data has been modified in a buffered table. Synchronization takes place at fixed time intervals that can be set in the system profile. The corresponding parameter is rdisp/buffertime and it defines the length of the interval in seconds. The value must lie between 60 and 3600. We recommend a value between 60 and 240.