This blog will explain the SAP buffer setup and the SAP buffer refresh process.
Questions that will be answered are:
- What is the use of table buffers?
- Which tables are buffered?
- How can I check on my productive system which buffered table is using a lot of memory?
- How to force a buffer refresh in general?
- How to force a buffer refresh for a specific table?
- How to force a buffer refresh on a specific application server?
Background of table buffers
The primary reason of a table buffer is pretty simple: performance improvement.
SAP has a 3 tier setup of:
- Front end GUI
- Application server
- Database server
If data is read from the database server it is processed on the application server. This data is buffered on the application server. If a user asks the same data twice, the application server already has the data. Also very frequently read tables (like company code and plant data) are buffered on the application server.
In transaction SE11 in the technical settings of a table you can see if a specific table is buffered or not, and the type of buffering. Example is for table T000, which is fully buffered:
When to set buffering?
Buffering is extremely useful on small and infrequently changing tables, which have a lot of read access. For these tables buffering will help a lot. That is why a lot of customizing table have buffering activated. You can do the same for your Z tables if they are used for customizing like purposes.
How to check buffering in productive system?
Read this blog to understand and use the new advanced table buffer analysis program.
Old method:
Follow the instructions from OSS note 2806927 – Remove table buffers to check table buffering in production.
Go to transaction AL12:
Then select menu option Monitor, Buffers, Table buffer, All Generic tables. Then sort by size:
How to reset table buffers?
In some specific case you might want to force a buffer reset.
For this reason you can enter specific commands (enter same way like transaction code or the famous /h for debugging):
/$TAB – Resets all the table buffers on the application server
/$TAB <table name> – Resets the TABLE buffers on the application server for that specific table (also consider program TOUCHTAB after transporting a table definition)
/$SYNC Resets the buffers on the application server
/$CUA Resets the CUA buffer of the application server (the CUA buffer is not for central user admin, but holds screen elements like menus, buttons, etc)
/$DYN Resets the screen buffer on the application server
/$ESM Resets the exp/imp shared memory Buffer on the application server
/$PXA Resets the program (PXA) buffer on the application server
/$OBJ Resets the shared buffer of the application server
ST02 buffer overview
You can use transaction ST02 to get an overview of the buffers:
By clicking the button Current parameters you get an overview of the currently set relevant parameters:
Explanation notes:
Other buffer and caching resets
There are other buffer and caching resets: