SAP transaction codeObjectST02ModuleBASIS

ST02 — Buffer and memory tuning monitor

ST02 (Tune Summary) shows live utilization of the SAP application server's memory buffers: program buffer, table buffers, export/import buffer, and related shared memory areas. It reports hit ratios, swaps, and free space per buffer, per instance. It is read-only monitoring, not configuration; sizing changes are made through profile parameters and only take effect after a restart.

This page covers ST02, the transaction used to check whether an application server's buffers are correctly sized and behaving. It focuses on distinguishing real buffer undersizing from restart noise, per-instance blind spots, and the reflex of enlarging buffers without checking the actual swap trend first.

Reviewed by an ERPClimb SAP consultant on 15 Sept 2026· 1,238 words

What it does

ST02 displays the current state of the buffers and shared memory areas an application server instance uses to avoid repeated database access: program buffer, table buffer (generic key and single record), export/import buffer, calendar buffer, screen buffer, CUA buffer and a few others. For each it shows allocated size, current usage, free space, hit ratio and the swap count. The one fact that causes most confusion is that everything shown is per instance and lives in shared memory that is wiped on every application server restart, so numbers reset to zero and rebuild organically as work processes run. Reading ST02 right after a restart or on a system that has been up only a few hours produces misleading swap counts and low hit ratios that look like sizing problems but are simply the buffer warming up.

When it is used

ST02 is reached for during performance troubleshooting when response times are generally slow across many transactions rather than one specific report, or when SM50/SM66 shows work processes spending unusual time and CPU without an obvious lock or long-running SQL statement. It is also checked proactively after a go-live or a major transport, since new custom tables or changed buffering settings change buffer load patterns. It is not the tool for single-transaction slowness (that is ST05 or SQL trace territory) and not the tool for database-side memory (that is ST04 or the database monitor). Basis uses it during capacity planning and before recommending a profile parameter change; functional consultants use it mainly to rule out infrastructure before escalating a slow custom program.

How to use it

  • Open ST02, note the instance shown in the header; if the system has multiple application servers, repeat for each one via the instance selection, since buffers are not shared across instances
  • Check the swap column first for every buffer, not the hit ratio, since a high hit ratio can mask a buffer that is close to full and about to start swapping
  • For any buffer with swaps greater than zero and rising, drill into the detail view to see the number of directory entries and free directory space, not just data space
  • Compare current values against the values from the last restart time; if uptime is short, treat the numbers as provisional and revisit after normal daily load has run
  • Cross-check table buffer entries against SE13 settings for the specific tables involved to rule out a buffering-switched-off issue before touching sizing

Key fields

ST02 does not write or save application data. It reads live counters maintained in the application server's shared memory buffer management structures and presents them; there is no save step and no persistent database table behind the screen itself.

  • Program buffer (shared memory) - compiled ABAP load objects currently cached for execution, avoids reloading generated code
  • Table buffer, generic and single-record areas (shared memory) - cached rows or full tables for buffered database tables, avoids repeated SELECTs
  • Export/import buffer (shared memory) - serialized data clusters cached across sessions, used heavily by custom EXPORT/IMPORT TO MEMORY constructs and some standard clusters
  • CUA and screen buffers (shared memory) - cached GUI status and screen definitions, rarely a bottleneck but shown for completeness

How to prove it in the data

There is no SE16 table to query directly for the live counters. To prove a buffer problem is real rather than restart noise, cross-check three things: the instance start time in SM51 against the swap counters in ST02 (short uptime explains low numbers), the actual configured buffer size against the profile parameter value shown in RZ11 for the corresponding parameter (mismatch means the parameter change was never activated), and the historical trend for the same buffer over several days through the workload monitor's history view, which shows whether swaps are climbing steadily or were a one-off spike tied to a specific load event.

ECC vs S/4HANA

ST02 behaves the same on ECC and S/4HANA for the ABAP application server buffers described here; the transaction itself has not changed structurally. What differs on S/4HANA is that many former database buffering decisions are now less relevant because the database itself is SAP HANA, so the emphasis shifts more toward table buffer settings for tables that still benefit from application server side buffering, and database-side memory is checked separately in ST04 or the HANA-specific monitors rather than in ST02. There is no dedicated Fiori app replacing ST02; it remains a GUI transaction used by Basis.

Common pitfalls

  • Restart noise misread as sizing problem - buffers reset on instance restart; low hit ratio and apparent swaps in the first hours after a restart or kernel upgrade are normal warm-up behavior, not evidence the buffer is too small. Check instance uptime in SM51 before drawing conclusions.
  • Swaps ignored in favor of hit ratio - a buffer can show a healthy hit ratio percentage while directory space is nearly exhausted and swaps are already occurring; hit ratio is a lagging indicator, swap count and free directory entries are the leading ones. Always check swaps first.
  • Table buffering switched off mistaken for a buffer capacity issue - if a specific table shows no hits at all rather than a low ratio, the table's buffering setting in SE13 was likely changed or was never active, and no amount of buffer resizing will help. Confirm the table's buffering type before touching profile parameters.
  • Single-instance view in a multi-server landscape - checking one application server and assuming the finding applies system-wide; buffers are local to each instance, and an unevenly loaded landscape can show one instance swapping heavily while others are fine. Check every instance separately.
  • Reflex fix of blindly raising buffer size - increasing a buffer parameter without checking the swap trend or free memory on the host can push the instance into paging or reduce memory available to work processes, trading one performance problem for a worse one. Confirm the trend is genuine and check available host memory before requesting a parameter change through RZ10, and remember the change only takes effect after a restart.

Whose problem this is

This is Basis territory. Functional or ABAP consultants may be asked to confirm whether a specific custom table is buffered or should be, but sizing decisions, parameter changes and restarts belong to Basis. A good handover states the affected buffer, the swap trend over several days with timestamps, the instance uptime at time of observation, and whether the issue reproduces on all instances or one.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-tcodes/st02ERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.