Analyzing Transaction Steps in SAP

To display the statistics for each transaction step, use transaction code STAT or from the R/3 initial screen choose Tools ® Administration ® Monitor ® Performance ® Workload ® Statistics Record.

To toggle between various detailed views, choose from DB, Time, Task/Mem, and Bytes. For an overview of all detail views, choose All details.

The detail view DB shows information on the executed transaction steps for a single transaction step. The average database time for a sequential read (SELECT … ENDSELECT, SELECT … INTO TABLE) should be around 10 milliseconds per data record. For a direct read (SELECT SINGLE …) it should be around 5 ms per record. Accesses that change data (UPDATE, INSERT, MODIFY, DELETE) should require around 20 ms per record.

To help you decide which tool to use for further analysis (SQL Performance Trace, ABAP runtime analysis), look at the response time, dispatcher wait time, CPU time, and database time (indicated as DB req. time).

Response time: Time from the receipt of a user request to the sending of a response (measured on the application server; does not include network time between the presentation server and the application server)

Dispatcher wait time: Time spent by the user request in the dispatcher queue

Roll-in: Time required to roll the user context in to the R/3 work process

Load time: The time required to load and generate program objects (coding, screens, and so on)

Processing time: = response time - (dispatcher wait time + roll-in + roll-out + load time + database time + enqueue time + roll-wait time)

Enqueue time: Time from sending an enqueue request to the R/3 enqueue server to the receipt of the results

Database time: Time from sending an SQL statement to the receipt of the results (includes network time between the application server and the database server)

Roll-wait time: Time in which the user context is rolled out of the work process pending response to an RFC call

Roll-out: Time required to roll the user context into the roll buffer

CPU time: Time spent by the CPU in processing the transaction step (measured by the operating system; not an additive component of the response time)

To analyze individual objects such as programs and transactions, first examine the statistics records for each transaction step. Remember to perform the analysis under production-like conditions (with representative data and, in the production system, with representative user activity).

If in the single statistics records you find that much CPU time is used, look for optimization potential in application server processing (for example, processing internal tables) using the ABAP runtime analysis.

If in the single statistics records you find that there is a problem during database server processing, perform an SQL Performance Trace.

No comments:

Post a Comment