You are on page 1of 239

ADM315

AS ABAP
Performance Analysis

Publication ID:
SAP Copyrights and Trademarks

2015 SAP SE. All rights reserved.

No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP SE. The information contained herein may be changed without prior
notice.
Some software products marketed by SAP SE and its distributors contain proprietary software components of other software vendors.

Microsoft, Windows, Excel, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation.
IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5, System x, System z, System z10, System z9, z10, z9, iSeries, pSeries, xSeries, zSeries, eServer, z/VM,
z/OS, i5/OS, S/390, OS/390, OS/400, AS/400, S/390 Parallel Enterprise Server, PowerVM, Power Architecture, POWER6+, POWER6, POWER5+, POWER5, POWER, OpenPower,
PowerPC, BatchPipes, BladeCenter, System Storage, GPFS, HACMP, RETAIN, DB2 Connect, RACF, Redbooks, OS/2, Parallel Sysplex, MVS/ESA, AIX, Intelligent Miner, WebSphere,
Netfinity, Tivoli and Informix are trademarks or registered trademarks of IBM Corporation.
Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.
Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered trademarks of Adobe Systems Incorporated in the United States and/or other countries.
Oracle is a registered trademark of Oracle Corporation
UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group.
Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc.
HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C, World Wide Web Consortium, Massachusetts Institute of Technology.
Java is a registered trademark of Sun Microsystems, Inc.
JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape.
SAP, R/3, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP BusinessObjects Explorer, StreamWork, and other SAP products and services mentioned herein as well as their respective
logos are trademarks or registered trademarks of SAP SE in Germany and other countries.
Business Objects and the Business Objects logo, BusinessObjects, Crystal Reports, Crystal Decisions, Web Intelligence, Xcelsius, and other Business Objects products and services
mentioned herein as well as their respective logos are trademarks or registered trademarks of Business Objects Software Ltd. Business Objects is an SAP company.
Sybase and Adaptive Server, iAnywhere, Sybase 365, SQL Anywhere, and other Sybase products and services mentioned herein as well as their respective logos are trademarks or
registered trademarks of Sybase, Inc. Sybase is an SAP company.

All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications
may vary.
These materials are subject to change without notice. These materials are provided by SAP SE and its affiliated companies ("SAP Group") for informational purposes only, without representation or
warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the
express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.
Course Overview

Unit 1: Introduction to Workload Analysis

Unit 2: Performance Analysis Monitors

Unit 3: SAP Memory Management

Unit 4: Hardware Capacity Verification

Unit 5: Expensive SQL Statements

Unit 6: SAP Table Buffering

Unit 7: Remote Function Call (RFC) Monitoring


Unit 1: Introduction to Workload Analysis

Lesson 1: Identifying the Components of a Dialog Step

Lesson 2: Analyzing Statistical Records and Data Information Flow


ADM315 Unit 1 Lesson 1

Lesson 1: Identifying the Components of a Dialog Step

Lesson Objectives
After completing this lesson, you will be able to:

Review SAP systems

Identify factors that impact system performance

Use transactions to monitor SAP system performance

Outline performance issues

Outline tuning measures

Distribute the workload

Describe the components of dialog response time

Handle GUI time


ADM315 Unit 1 Lesson 1

Lesson Agenda
Learn About:
SAP System Overview

Performance Components

Contributors to the System Workload

Operating System Monitoring

Database Monitoring

Work Process Monitoring

User Monitoring

Buffer Monitoring

Typical Causes of Performance Bottlenecks


ADM315 Unit 1 Lesson 1

Lesson Agenda
SAP Technology Tuning

SAP Applications Tuning

Approaches to Workload Distribution

Dialog Response Time

Wait Time

Roll-In Time

Load and Generation Time

Processing Time

Database Request Time

Buffer Access Time

Enqueue Time
ADM315 Unit 1 Lesson 1

Lesson Agenda
Roll-Out Time

CPU Time

Roll Wait Time

GUI Time

Analysis Roadmap

The Flow of Requests through an SAP System

Watch:
How to Explain the Flow of Requests through an SAP System
ADM315 Figure 1: SAP Systems and Releases of Software Unit 1 Lesson 1
Component SAP_Basis
ADM315 Table 1: Transaction Codes: Monitoring Unit 1 Lesson 1

Transaction Code Description


ST06 Monitor the operating system of the server that the instance runs on
(CPU utilization, memory utilization, swap/page activity).
ST04 Monitor the database memory usage, SQL requests, and physical
disk reads.
DBACOCKPIT
SM50 Monitor the work process for the current instance.
Transaction SM66, which shows a global view of all work processes,
SM66 can now be accessed through SM50 in SAP NetWeaver 7.4.
SM04 User sessions are monitored, including information, such as a ses-
sion type, number of sessions, and memory usage, and so on.
AL08 Transaction AL08, which shows a system-wide list of all logged on
users, can now be accessed through SM04 in SAP NetWeaver 7.4.
ST02 A system-wide view of all buffers (nametab, program, table, etc), and
SAP memory (extended memory, heap memory, and so on).
ADM315 Figure 2: Central Monitoring Transactions Used in Unit 1 Lesson 1
Performance Analysis
ADM315 Unit 1 Lesson 1

Typical Causes of Performance Bottlenecks


Long-running programs caused by unnecessary programming statements
Unsuitable customizing
Poor data selection by end users (bad usage)
ADM315 Unit 1 Lesson 1

SAP Technology Tuning


Optimization of SAP system parameters
Optimization of database and Operating System configuration
Optimization of workload distribution
Verification of hardware sizing by looking for hardware bottlenecks
ADM315 Figure 3: Workload Distribution Unit 1 Lesson 1
ADM315 Figure 4: System and Dialog Response Time Unit 1 Lesson 1
Components
ADM315 Unit 1 Lesson 1

Dialog Response Time


Wait time
Roll-in time
Load and generation time
Processing time
Database request time
Buffer access time
Enqueue time
Roll-out time
CPU time
Roll wait time
ADM315 Figure 5: Definition of Dialog Response Time Unit 1 Lesson 1
ADM315 Unit 1 Lesson 1

Load and Generation Time


1. If the program has not been executed in the SAP system since its installation, then
only the so-called source exists, and resides in table REPOSRC starting with SAP
NetWeaver Application Server 6.40 (before that, sources had been stored in table
D010S).
Therefore, the load needs to be generated (the load can be executed in work
processes, but not the source). This procedure is called compilation or
generation of loads.

2. The program loads are stored in table REPOLOAD, starting with SAP NetWeaver
Application Server 6.40 (before that, loads had been stored in table D010L).

3. The program load is then transferred to the program buffer.

4. The program load (or parts of it) are then copied into local memory of the work
process to be executed.
ADM315 Unit 1 Lesson 1

Load and Generation Time


1. Products based upon SAP NetWeaver Application Server 6.40 or earlier. In this
case, the work process requesting the load (not existing in buffers) also generates
the load based on the source. All steps requiring work from the database are added
to the Database Request Time. Only pure compiling or generation work done
within the work process is counted for Load and Generation Time.

2. Products based upon SAP NetWeaver AS 7.0 or later. In this case, the work
process needs another work process of type DIA for this work. While this second
work process generates the load, the first work process is in status On Hold with
Reason RPC.
The complete work of the second work process is considered as Load & Generation
Time. In this case, the accumulated database request time is not separated from
the Load & Generation Time (as was the case with SAP NetWeaver Application
Server 6.40 or earlier). If no second dialog work process is available, then the same
procedure as in former releases is used.
ADM315 Figure 6: Components of the Dialog Response Unit 1 Lesson 1
Time
ADM315 Unit 1 Lesson 1

Roll Wait Time


If a work process performs a synchronous remote function call (RFC), for example,
to another SAP system, the dialog step waits for an answer. A roll-out is performed
to avoid leaving the work process idling and to let the work process handle other
dialog steps. The time until the RFC request returns an answer (and a roll-in is
performed) is called Roll Wait Time.

Starting with release 4.6A, the sending of data to the SAP GUI can be performed
with round trips. A round trip is a synchronous RFC to the front end. In this case a
roll-out can also be performed. Again, Roll Wait Time is accumulated.
ADM315 Figure 7: Roll Wait Time due to Synchronous RFC Unit 1 Lesson 1
and Roundtrips to the Front End
ADM315 Unit 1 Lesson 1

Roll Wait Time


COMMIT WORK - this ABAP statement can be issued while processing data without
necessarily ending the dialog step.

Synchronous Update processing - a dialog work process can hand over update
work to an update work process and wait for the update to complete. Remember
that the work process does not wait but, in fact, continues with a roll-out. However,
the dialog step (from the end users point of view) is not finished yet.

WAIT - this ABAP statement can be issued in situations when processing stops for
a specified time. Again, roll-out occurs.
ADM315 Figure 8: High Roll Wait Time Unit 1 Lesson 1
ADM315 Table 2: Potential Problems: Scenarios Unit 1 Lesson 1

Scenario Possible Reason


High wait time Insufficient number of free work processes
High roll-in time Not enough extended memory or space in the Roll Buffer
(prior to SAP NetWeaver 7.4) are available
High load and generation SAP buffers (Program, CUA or Screen) are too small
time
High enqueue time Very large enqueue table, many lock requests
High database request time CPU/memory bottleneck on database server; communica-
tion problem with database server, expensive SQL state-
ments, database locks, missing indexes, missing statistics,
or small database buffer(s)
Processing time more than CPU bottlenecks
twice CPU time
High CPU time Expensive ABAP processing, for example, processing large
tables, inefficient programming
ADM315 Unit 1 Lesson 1

Scenario Possible Reason


High roll-wait time Communication problem with SAP GUI or an external sys-
tem, or large amounts of data requested
ADM315 Figure 9: Statistical Record: Process Flow Unit 1 Lesson 1
ADM315 Figure 10: Stat File Unit 1 Lesson 1
ADM315

Summary
You should now be able to:

Review SAP systems


Identify factors that impact system performance
Use transactions to monitor SAP system performance
Outline performance issues
Outline tuning measures
Distribute the workload
Describe the components of dialog response time
Handle GUI time
ADM315 Unit 1 Lesson 2

Lesson 2: Analyzing Statistical Records and Data Information


Flow

Lesson Objectives
After completing this lesson, you will be able to:

Gather statistical data on the performance of an AS ABAP-based system

Analyze average dialog response time


ADM315 Unit 1 Lesson 2

Lesson Agenda
Learn About:
Workload Monitor Overview

The STAD Business Transaction Analysis

Data Flow Analysis of STAD and ST03

Related Information: Analyzing Statistical Records and Data Information Flow

Learn:
To Use a Statistical Record

Watch:
How to Determine the Average Dialog Response Time for a Given Period
ADM315 Unit 1 Lesson 2

Lesson Agenda
Do:
Determine the Average Dialog Response Time for a Given Period
ADM315 Figure 11: ST03: Workload Monitor - Last Minute Unit 1 Lesson 2
Load Screen
ADM315 Unit 1 Lesson 2

Transaction Profile Options


The most-used transactions. Sort column Total Response Time also takes into
account the number of steps. Focus on tuning the transactions that have the
largest total response time because these have the largest impact on system
performance.

The average response time for transactions used on the SAP instance under
inspection.
ADM315 Figure 12: ST03: Transaction Profile - Standard Unit 1 Lesson 2
View
ADM315 Unit 1 Lesson 2

The STAD Business Transaction Analysis


To display single records, select Show all Stats records, Sorted by time.
To display the business transaction or job totals, select Show Business Transaction
Tots.

To display the single records grouped by business transaction or job, select Show
all records, grouped by business transaction.
ADM315 Figure 13: Initial Selection Screen Unit 1 Lesson 2
ADM315 Figure 14: STAD: List of Single Statistical Unit 1 Lesson 2
Records
ADM315 Figure 15: STAD: Single Statistical Records on Unit 1 Lesson 2
Display: Subview Time
ADM315 Figure 16: Data Flow for STAD and ST03 Unit 1 Lesson 2
ADM315 Unit 1 Lesson 2

Data Flow Analysis


1. Statistics data is collected during each dialog step, and executed by each work
process. The detail level of data collection can be configured by several
parameters named stat/* (stat/rfcrec, for example).
This statistics data is stored by the work process in shared memory, key 4, as can
be seen in transaction ST02 by choosing Detail Analysis Menu Storage Shared
Memory Detail. It is moved from there to the stat file if the following conditions are
met:

The buffer area is full.


An evaluation transaction is started (such as STAD or the Last Minute Load
analysis).

An hour has passed (this condition is implemented since SAP NetWeaver


Application Server 6.10).

2. The data is transferred to an operating system-level file, stored at the location


given by the parameter stat/file. This parameter points by default to the instance-
ADM315 Unit 1 Lesson 2

Data Flow Analysis


specific /Data-directory (for example: <Drive>:\usr\sap\<SID>
\DVEBMGS00\data). For each hour a new stat file is written. The parameter stat/
maxfiles determines how many stat files are written before the oldest is
overwritten.

3. The stat file(s) can be accessed directly by transaction STAD. The last minute load
analysis in transaction ST03 also accesses the stat file(s) directly. There is also a
report STATDUMP that displays raw data of the stat file(s).

4. The content of the stat file(s) is transferred regularly to the database table
SWNCMONI by report RSCOLL00.
The data is aggregated during this transfer. This means that not all statistics
information is transferred to table SWNCMONI. RSCOLL00 runs periodically as a
background job, named SAP_COLLECTOR_FOR_PERFMONITOR. RSCOLL00
evaluates the entries of table TCOLL to determine what actions should be
executed. Actually, RSCOLL00 triggers several reports, but only RSSTAT90 (or a
newer one) is used for transferring the stat file data to table SWNCMONI.
ADM315 Unit 1 Lesson 2

Data Flow Analysis


5. ST03 evaluates the content of the database table SWNCMONI (in the past: table
MONI).
We can observe a new behavior of SAP_COLLECTOR_ FOR_PERFMONITOR, where
from a certain technology level onwards, a separate batch is scheduled for each
step listed in TCOLL.
ADM315

Summary
You should now be able to:

Gather statistical data on the performance of an AS ABAP-based system


Analyze average dialog response time
Unit 2: Performance Analysis Monitors

Lesson 1: Monitoring System Performance

Lesson 2: Implementing Dynamic Work Processes


ADM315 Unit 2 Lesson 1

Lesson 1: Monitoring System Performance

Lesson Objectives
After completing this lesson, you will be able to:

Analyze the Work Process Overview

Analyze the Operating System monitor

Analyze the workload to determine performance issues


ADM315 Unit 2 Lesson 1

Lesson Agenda
Learn About:
Local Work Process Overview

Global Work Process Overview

Issue Analysis Using the Work Process Overview

Operating System Data Collection

Operating System Data Collection in Various Technical Setups

Transaction ST06 Usage

Information in the Buffer Monitor

Data Comprehension in the Buffer Monitor

Types of Individual Buffers


ADM315 Unit 2 Lesson 1

Lesson Agenda
Buffer Problems and Solutions

Watch:
How to Analyze the Workload to Determine Performance Issues

Do:
Analyze the Workload to Determine Performance Issues
ADM315 Figure 17: Local Work Process Overview Unit 2 Lesson 1
ADM315 Unit 2 Lesson 1

Transaction SM50: Details


No.
This column identifies the work process number. This numbering starts at 0. For
example, it may be used to identify the work process trace files, such as dev_w4.
Type
This column displays the type for a work process (DIA for Dialog, for example).
PID
The process ID (PID) is used by the Operating System to manage all processes.
Windows operating systems tend to assign these IDs in a non-transparent fashion.
WP Status
View the current status of the individual work processes. See the F1 help for an
explanation of the six possible status options. Available statuses are: Waiting,
Running, On Hold, Completed, Shutdown, or Standby.
On Hold
Possible reasons for work processes in status On Hold. Use F1 help on this field to
get a list of possible reasons for status On Hold.
Failures
ADM315 Unit 2 Lesson 1

Transaction SM50: Details


The number of times a work process has been terminated during its current
runtime.

Note:
The SAP system sometimes encounters situations in which work processes
cannot be restarted because of technical reasons (for example, out of memory).
The restart flag is set to No after unsuccessful restart attempts by the dispatcher.
If you encounter such a situation, remember that the problem lies somewhere
else, and can most likely be analyzed by evaluating the developer trace files of the
corresponding work processes.
For more information on unexpected terminations of work processes (NOT
because of errors), read the profile parameter abap/heaplimit because, as in this
case, no error will be reported.

Locked Semaphore
The semaphores of a work process that are currently being hold.
Requested Semaphore
ADM315 Unit 2 Lesson 1

Transaction SM50: Details


This column displays information on semaphores used to manage access to
resources on Operating System level. You can think of semaphores as a kind of
locking mechanism. For a list of possible semaphores, view the F1 help on this
column. Semaphore conflicts should rarely occur in your system. If they do occur,
check the work performed by the process that holds the lock (this is displayed in
green, while those processes waiting for the lock/semaphor are displayed in red).
CPU
This column displays information on the CPU time consumption of individual
processes since startup (of the individual process) after selecting the CPU button.
In previous SAP releases (before Kernel 7.20), this display can help identify work
processes that are doing almost no work. Note that because of the work distribution
algorithm used by the dispatcher, work process 0 should always have consumed
more CPU time than work process 1, work process 1 should have used up more CPU
time than work process 2, and so on (only considering work processes of the same
type).
In new SAP releases, using kernel 7.20 or above, the dispatcher is using a different
workload distribution algorithm. Therefore the old interpretation of CPU time is no
ADM315 Unit 2 Lesson 1

Transaction SM50: Details


longer possible. The new workload distribution leads to a much more spread out
load distribution. As a result, occasional peaks may be observed, distributed
arbitrarily with no discernible pattern.
ADM315 Unit 2 Lesson 1

Transaction SM50: Details

Note:
This kind of evaluation only makes sense if the following conditions apply:

You are looking only at work processes of the same type.

There has not been an operation mode switch since instance startup.
Operation mode switches change the type of work process but do not
reset the CPU time counter.

The dispatcher distributes new dialog requests to work process 0, unless


work process 0 is busy. If so, then case work process 1 will be used unless
it is busy, and so on. This distribution algorithm is always used, unless the
dispatcher can assign the same work process to a specific user that was
previously used, providing the process has not performed work for another
user in-between (user context still intact).

The work process has not been restarted since startup of the instance.
ADM315 Unit 2 Lesson 1

Transaction SM50: Details


Time
This column displays the time (real time, not CPU time) a certain task is being
worked on. This number is colored red if the value given by parameter rdisp/
max_wprun_time is exceeded (for example, 600s). For more details, see the
documentation for this profile parameter.
Priority
Priority with which requests are executed for this back-end session. If there are
work process bottlenecks, a request with lower priority can be displaced by another
request with higher priority.
Executed Program
This column displays the program that is currently executed by the work process.
Note that not all entries in this column represent program code executable in dialog
mode.
Client
This column displays the (SAP system) client from which the displayed activity has
been called. User Names - displays the user who called the function.
ADM315 Unit 2 Lesson 1

Transaction SM50: Details


User ID
ID of the user session whose request is currently being processed.
ADM315 Figure 18: Details of a Work Process Unit 2 Lesson 1
ADM315 Figure 19: Global Work Process Overview Unit 2 Lesson 1
ADM315 Figure 20: Road Map to the Work Process Unit 2 Lesson 1
Monitoring Analysis
ADM315 Unit 2 Lesson 1

Receiving OS-Related Information


Use tools offered by the Operating System
Use tools offered by third-party vendors
Use tools offered by the SAP system
ADM315 Unit 2 Lesson 1

Operating System Monitor Information


Virtual memory
Physical memory
CPU
File system administration
Physical disk
Network
ADM315 Figure 21: Entry Screen for the Operating System Unit 2 Lesson 1
Monitor (ST06)
ADM315 Figure 22: Operating System Monitor, Top 40 Unit 2 Lesson 1
CPU Processes
ADM315 Figure 23: Buffer Monitor Entry Screen (ST02) Unit 2 Lesson 1
ADM315 Unit 2 Lesson 1

Buffer Monitor Information


SAP buffer and memory configuration
Buffer status and memory usage
ADM315 Unit 2 Lesson 1

Data Comprehension in the Buffer Monitor


All buffers should show hit ratios of greater than 95%, unless otherwise specified in
the description of individual buffer types later in the lesson.

Swaps in buffers occur because there is not enough free space left in the buffer for
buffering the new object, or the buffer has run out of free directory entries.
Directory entries determine how many different objects can be contained in one
buffer area. However, directory entries also diminish the available size of the
buffer, independent of their usage. It is not advisable to set the number of directory
entries to high numbers, or no space may be left for the actual objects to be
buffered. However, a buffer should not swap because there are no directory
entries left.

Swaps are to be avoided, as are all other situations leading to lines shown in red in
the ST02 display.

You can find the parameters for all buffer-related settings by clicking the Current
Parameters button. If you then select the Profile maintenance (F6) button, you will
be referred to transaction RZ10; if you select the Change Profile parameter (F7)
ADM315 Unit 2 Lesson 1

Data Comprehension in the Buffer Monitor


(after selecting on specific parameter), you will be sent to transaction RZ11. It is
mandatory that you consider the unit of the parameter value before you think
about changing settings.

Double-clicking individual buffers in transaction ST02 is equivalent to selecting


entries under Detail Analysis Menu SAP Runtime Buffers. Using this method lets
you find more information on the buffers of your SAP instance.
ADM315 Figure 24: Reason for the Problem Unit 2 Lesson 1
ADM315 Figure 25: Solution to the Problem Unit 2 Lesson 1
ADM315 Figure 26: Platform ID Unit 2 Lesson 1
ADM315

Summary
You should now be able to:

Analyze the Work Process Overview


Analyze the Operating System monitor
Analyze the workload to determine performance issues
ADM315 Unit 2 Lesson 2

Lesson 2: Implementing Dynamic Work Processes

Lesson Objectives
After completing this lesson, you will be able to:

Activate the configuration process


ADM315 Unit 2 Lesson 2

Lesson Agenda
Learn About:
Dynamic and Reserved Work Processes

Dynamic Work Process Parameters

Restricted and Reserved Work Processes Parameters

Related Information: Implementing Dynamic Work Processes

Watch:
How to Activate the Dynamic Work Process
ADM315 Figure 32: Dynamic Work Processes and Unit 2 Lesson 2
Associated Parameters
ADM315

Summary
You should now be able to:

Activate the configuration process


Unit 3: SAP Memory Management

Lesson 1: Identifying the Memory Areas Used in SAP Systems

Lesson 2: Describing Memory Usage in SAP Systems

Lesson 3: Implementing SAP Extended Memory


ADM315 Unit 3 Lesson 1

Lesson 1: Identifying the Memory Areas Used in SAP Systems

Lesson Objectives
After completing this lesson, you will be able to:

Identify the types of memory areas

Assign memory areas


ADM315 Unit 3 Lesson 1

Lesson Agenda
Learn About:
Virtual Memory in the SAP System

Shared Memory Used with Work Processes

Local Memory Used with Work Processes

Memory Areas Allocation Process

Potential Issues with Memory Configuration


ADM315 Figure 33: Virtual Memory Unit 3 Lesson 1
ADM315 Figure 34: Shared Memory and Local Memory Unit 3 Lesson 1
ADM315 Figure 35: Shared Memory: SAP Buffers Unit 3 Lesson 1
ADM315 Figure 36: Shared Memory: SAP Extended Unit 3 Lesson 1
Memory
ADM315 Figure 37: Shared Memory: SAP Paging Area Unit 3 Lesson 1
ADM315 Figure 38: Local Memory Unit 3 Lesson 1
ADM315 Unit 3 Lesson 1

Work Process Data


ABAP Load being executed
Stack
Static data
Buffer for database transfer
Local paging area
ADM315 Figure 39: SAP Memory Areas: Overview Unit 3 Lesson 1
ADM315 Unit 3 Lesson 1

Memory Areas
Extended memory is allocated at instance start and can increase on demand
depending on the operating system.

Heap memory is allocated and released on demand.


ADM315 Figure 40: Memory Overview in ST02 Unit 3 Lesson 1
ADM315 Unit 3 Lesson 1

Common Memory Error Situations


In SAP Extended Memory/SAP Buffers/SAP Paging Area:
TSV_TNEW_PAGE_ALLOC_FAILED
SYSTEM_NO_MORE_PAGING
PXA_NO_SHARED_MEMORY
SET_PARAMETER_MEMORY_OVERFLOW

When the user context is used up:


SYSTEM_ROLL_IN_ERROR
TSV_TNEW_PAGE_ALLOC_FAILED
TSV_TNEW_BLOCKS_NO_ROLL_MEMORY
ADM315

Summary
You should now be able to:

Identify the types of memory areas


Assign memory areas
ADM315 Unit 3 Lesson 2

Lesson 2: Describing Memory Usage in SAP Systems

Lesson Objectives
After completing this lesson, you will be able to:

Review the SAP memory areas

Check the limits of SAP memory usage


ADM315 Unit 3 Lesson 2

Lesson Agenda
Learn About:
Memory Allocation

Memory Allocation Sequence for all Work Process Types

Heap Memory Release in the Work Process

Memory Management Setup

Parameters for SAP Memory Management

Related Information: Describing Memory Usage in SAP Systems

Watch:
How to Check the Limits of SAP Memory Usage
ADM315 Figure 41: Private Area of the Dialog Work Unit 3 Lesson 2
Process
ADM315 Figure 42: User Context and Extended Memory Unit 3 Lesson 2
Pool
ADM315 Figure 43: Work Processes Processing One Step Unit 3 Lesson 2
at a Time
ADM315 Figure 44: Roll Out Unit 3 Lesson 2
ADM315 Figure 45: Roll In Unit 3 Lesson 2
ADM315 Figure 46: Mapping Used for Accessing Data in Unit 3 Lesson 2
Extended Memory
ADM315 Unit 3 Lesson 2

Reasons for Using Extended Memory


Fast context switches are needed in SAP systems, because many users share few
work processes.

Extended memory is accessed through pointers, therefore fast context switches


are possible.

SAP transactions usually consist of more than one step or screen.


ADM315 Figure 47: Memory Allocation Sequence 1 Unit 3 Lesson 2
ADM315 Figure 48: Memory Allocation Sequence 2 Unit 3 Lesson 2
ADM315 Figure 49: Memory Allocation Sequence 3 Unit 3 Lesson 2
ADM315 Figure 50: Memory Allocation Sequence 4 Unit 3 Lesson 2
ADM315 Figure 51: Memory Allocation Sequence 5 Unit 3 Lesson 2
ADM315 Figure 52: PRIV Mode 1 Unit 3 Lesson 2
ADM315 Figure 53: PRIV Mode 2 Unit 3 Lesson 2
ADM315 Figure 54: Memory Allocation Sequence for all Unit 3 Lesson 2
Work Process Types
ADM315 Figure 55: Heap Memory is Released by the Work Unit 3 Lesson 2
Process...
ADM315 Figure 56: ... but SWAP Space Might Stay Unit 3 Lesson 2
Allocated
ADM315 Figure 57: How ABAP/Heap Limit Works Unit 3 Lesson 2
ADM315 Figure 58: Work Process Restart Unit 3 Lesson 2
ADM315 Figure 59: SAP Memory Management Parameters Unit 3 Lesson 2
1
ADM315 Figure 60: SAP Memory Management Parameters Unit 3 Lesson 2
2
ADM315 Unit 3 Lesson 2

New Memory Management Features in Kernel Release 7.40


All data that was stored in the classic ROLL area in earlier releases is now stored in
the extended memory. The parameters used to configure the Roll area are obsolete
as of Kernel 740.

- ztta_roll_first: Defines the first initial allocation size for the roll area
- ztta/roll_area: Defines the local roll area per work process
- rdisp/roll_SHM: Defines the size of the roll buffer
- rdisp/roll_MAXFS: Defines the total size of the roll area (consisting of roll
buffer and roll file)

Zero Administration Memory Management (ZAMM), which was already available


for the Microsoft Windows platform in kernel releases below 7.40 is now available
on other platforms. Values of the individual memory configuration parameters are
automatically derived from formulas using the value of the profile parameter
PHYS_MEMSIZE.
ADM315 Unit 3 Lesson 2

New Memory Management Features in Kernel Release 7.40


PROC memory (PROCess-Local Memory) introduced in in ABAP Release 740 SP08
consists of local HEAP memory in the work process that is not assigned to a user
context.
ADM315 Figure 61: Report RSMEMORY Unit 3 Lesson 2
ADM315

Summary
You should now be able to:

Review the SAP memory areas


Check the limits of SAP memory usage
ADM315 Unit 3 Lesson 3

Lesson 3: Implementing SAP Extended Memory

Lesson Objectives
After completing this lesson, you will be able to:

Identify the causes of dialog work processes that enter PRIV mode
ADM315 Unit 3 Lesson 3

Lesson Agenda
Learn About:
Parameters for Sizing the Extended Memory

Roadmap to Detect and Solve Extended Memory Issues

Watch:
How to Analyze the Cause of Work Processes PRIV Mode

Do:
Analyze the Cause of Work Processes PRIV Mode
ADM315 Figure 62: Problems with Many Dialog Work Unit 3 Lesson 3
Processes in PRIV Mode
ADM315 Figure 63: Detecting Insufficient Extended Unit 3 Lesson 3
Memory
ADM315 Figure 64: Controlling PRIV Modes Unit 3 Lesson 3
ADM315 Figure 65: Roadmap to Detect and Solve Unit 3 Lesson 3
Problems with Extended Memory
ADM315

Summary
You should now be able to:

Identify the causes of dialog work processes that enter PRIV mode
Unit 4: Hardware Capacity Verification

Lesson 1: Identifying Hardware Bottlenecks

Lesson 2: Improving Hardware Configuration


ADM315 Unit 4 Lesson 1

Lesson 1: Identifying Hardware Bottlenecks

Lesson Objectives
After completing this lesson, you will be able to:

Analyze Hardware bottleneck issues


ADM315 Unit 4 Lesson 1

Lesson Agenda
Learn About:
Hardware Performance Issues

Hardware Analysis Roadmaps

Watch:
How to Identify Hardware Performance Issues

Do:
Identify Hardware Performance Issues
ADM315 Unit 4 Lesson 1

Hardware Performance Issues


End users see high response times
CPU utilization is very high (near 100%)
High average number of processes waiting for CPU (load average)
High paging rates
High disk response times
High network response times (checked by ping)
ADM315 Figure 66: Hardware Analysis Roadmap 1 Unit 4 Lesson 1
ADM315 Unit 4 Lesson 1

CPU Bottlenecks
1. Choose ST06 Systems <SID> then Snapshot Top 40 CPU processes to
identify processes with high CPU utilization.

2. If a process found in step 1 is an SAP work process, write down its process ID (PID)
and compare it (quickly) to the list in transaction SM50 to find out what activity in
the SAP system is causing the load. This activity might need some tuning.

3. If the process found in step 1 is part of your database infrastructure, try to identify
the reason for this database activity. Transaction ST04 will help you in this task.
Check if this database activity might be tuned or moved to another time, thus
causing less interference with online work.

4. If the process found in step 1 is not part of the SAP system, you need to decide if
this process might be moved to other hardware.
ADM315 Figure 67: Hardware Analysis Roadmap 2 Unit 4 Lesson 1
ADM315 Unit 4 Lesson 1

Reducing the Load on Memory


1. Distribute processes that do not need to run on this specific Hardware to other
Hardware.

2. If necessary, reduce the size of the file system cache to less than 10% of the total
physical memory.

3. Identify users/programs that cause a high memory consumption by analyzing the


mode list. Choose ST02 Detail analysis menu SAP memory Mode list and
analyze the transactions for signs of expensive SQL statements or suboptimal
programming.
ADM315 Figure 68: Hardware Analysis Roadmap 3 Unit 4 Lesson 1
ADM315 Figure 69: Result of CPU Bottleneck Unit 4 Lesson 1
ADM315

Summary
You should now be able to:

Analyze Hardware bottleneck issues


ADM315 Unit 4 Lesson 2

Lesson 2: Improving Hardware Configuration

Lesson Objectives
After completing this lesson, you will be able to:

Describe the factors that influence the system's hardware configuration


ADM315 Unit 4 Lesson 2

Lesson Agenda
Learn About:
Memory Configuration Recommendations

CPU Configuration Recommendations


ADM315

Hints for Successful Initial Memory Configuration


The database should get about 20% of the total physical memory of all servers
used for the individual SAP system.

Consider SAP buffers with a total size of 2000 MB per instance.


Per work process, consider 80 MB to 120 MB of memory, depending on the SAP
release and Operating System.

Provide 15 MB to 20 MB of extended memory per concurrent user in the SAP


system.

After startup of all necessary components for an instance of an SAP system, the
initial usage of virtual memory on the server the SAP instance runs on, should be
below 1.5 times the size of physical memory (RAM) provided that no AS Java is in
use. When using AS Java, avoid using page/swap.

Swap size (UNIX) should be about three times physical memory (or less), 64-bit
systems should have 20 GB swap space (or more) available.
ADM315 Unit 4 Lesson 2

Hints for Successful Initial Memory Configuration


Choose the page size (Windows OS) that is four times the physical memory (or
less, if large amounts of physical memory are available).
ADM315 Figure 70: Used Shared Memory of your SAP Unit 4 Lesson 2
Instance, as shown in ST02
ADM315 Unit 4 Lesson 2

CPU Configuration Recommendations


Load Distribution within 24 hours / 7days / 1 month / 1 year
Applications used (some applications generate five times the CPU load of others)
Number of concurrent users (over some periods of time)
Type of Hardware used
Type of Operating System used
Type of SAP application used (SAP ECC, SAP CRM, and so on)
Release of SAP software used
ADM315 Unit 4 Lesson 2

General Notes on CPU Consumption in SAP Systems


The database should be assigned between 10% and 30% of the total CPU power of
your entire SAP system.

Update processing might use between 10% and 20% of the total CPU power of
your entire SAP system.
ADM315 Unit 4 Lesson 2

Further Support Regarding Sizing


Let the Hardware supplier make some recommendations based on your
requirements. You might collect other offers from other Hardware suppliers as
well.

Visit http://service.sap.com/sizing
Carefully read the information provided in the installation and upgrade guide for
the SAP solution you would like to use.
ADM315

Summary
You should now be able to:

Describe the factors that influence the system's hardware configuration


Unit 5: Expensive SQL Statements

Lesson 1: Detecting Expensive SQL Statements

Lesson 2: Tuning Expensive SQL Statements


ADM315 Unit 5 Lesson 1

Lesson 1: Detecting Expensive SQL Statements

Lesson Objectives
After completing this lesson, you will be able to:

Identify expensive SQL statements

Examine different types of expensive SQL statements

Detect expensive SQL statements with the Work Process Overview

Detect expensive SQL statements using the transaction profile and statistical records

Apply the database monitor

Monitor database buffer gets

Optimize runtimes of expensive SQL statements

Detect expensive SQL statements using SQL Monitor


ADM315 Unit 5 Lesson 1

Lesson Agenda
Learn About:
Expensive SQL Statements

The Consequences of Expensive SQL Statements

Criteria for Evaluating the Impact of SQL Statements on Performance

Expensive SQL Statement: Appropriate Transactions

SQL Statements Used by ABAP Programs

SQL Statements Used by Database Administration Tools

SQL Statement Selection from SAP Basis Tables

Recursive SQL Statements

Work Process Overview Usage for Identifying Expensive SQL Statements


ADM315 Unit 5 Lesson 1

Lesson Agenda
Long Running Transaction Analysis

Identification of the Transactions Causing High Load

Use of the Transaction Profile to Identify Expensive SQL Statements

Database Monitor Usage

Basic Interpretation of the Execution Plan

Expensive SQL Statements for Database Performance Impact

SQL Trace Usage for Analyzing Expensive SQL Statements

SQL Trace Handling

Trace List Interpretation

Explain Function Usage

SQL Monitor Usage


ADM315 Unit 5 Lesson 1

Lesson Agenda
SQL Monitor Data Display

Learn:
To Use Database Process Monitor

Watch:
How to Display the Details of an ABAP Program with Work Process Overview

How to Find Expensive SQL Statements Using the Shared Cursor Cache

How to Optimize Runtimes of Expensive SQL Statements

How to Detect Expensive SQL Statements Using SQL Monitor

Do:
Optimize Runtimes of Expensive SQL Statements
ADM315 Figure 71: Consequences of Expensive SQL Unit 5 Lesson 1
Statements
ADM315 Unit 5 Lesson 1

Consequences of Expensive SQL Statements


The database is busy reading many blocks; other requests might be delayed.
The CPU on the database server might experience a high load; this may impact the
overall performance of the database or SAP system.

The work process is waiting for the database response and therefore not available
for other requests (potentially increasing their wait time).

Many blocks might be displaced from the database buffer; this can have negative
impact on following requests.
ADM315 Unit 5 Lesson 1

Criteria for Evaluating the Impact of SQL Statements on


Performance
How often is the statement executed (once per year, 12000 times per day)?
When is the statement executed (during times of high or low load)?
What is the overall impact on the systems total response time (contributes >5% to
the summed up dialog response times)?
ADM315 Figure 72: Two Types of Expensive SQL Unit 5 Lesson 1
Statements
ADM315 Figure 73: Buffer Gets and Physical Reads Unit 5 Lesson 1
ADM315 Unit 5 Lesson 1

Work Process Overview Usage for Identifying Expensive SQL


Statements
Identify long-running actions such as Sequential Read or Direct Read.
Note down the program name for future detailed analysis.
Note down the table name against which the action is running.
Remember the name of the user executing the long-running transaction; later you
will be able to ask the user for assistance for an SQL trace recording (ST05).

In SM50, you can also view the currently executed program.


ADM315 Figure 74: How to Analyze Long Running Unit 5 Lesson 1
Transactions
ADM315 Figure 75: Detection Using the Transaction Unit 5 Lesson 1
Profile
ADM315 Unit 5 Lesson 1

Use of the Transaction Profile to Identify Expensive SQL


Statements
1. Sort the Average database time (ms) column in descending order. transactions
with high average database request times might be caused by expensive SQL
statements.

2. Sort the Total Database Time column in ascending order, and then total this
column. Transactions causing more than 5% of this total database time are worth
a closer look with respect to tuning measures.

3. Sort the Total Response Time column in ascending order, and then Total this
column. Transactions causing more than 5% of this total response time are worth
a closer look with respect to tuning measures.
ADM315 Figure 76: Basic Usage of the Database Monitor Unit 5 Lesson 1
ADM315 Unit 5 Lesson 1

Database Monitor Entry Screen: Values


The quality of the database data buffer should be higher than 95%. During
warming up of the SAP system (which may take, depending on system load, a
few hours to some days) the quality may be lower, but should still be above 90%
(except during a very early phase).

Check the number of user calls compared to recursive calls. There should be no
more than 1 recursive call for each 2 user calls.

Check the Reads/User Call. If this value exceeds 15 (blocks read per user call) then
this is an indicator for expensive SQL statements.
ADM315 Figure 77: The Database Process Monitor Unit 5 Lesson 1
ADM315 Figure 78: The Database Process Monitor Screen Unit 5 Lesson 1
Details
ADM315 Figure 79: Access the Execution Plan Unit 5 Lesson 1
ADM315 Figure 80: Monitoring Buffer Gets Unit 5 Lesson 1
ADM315 Figure 81: How SAP SQL Trace Works Unit 5 Lesson 1
ADM315 Unit 5 Lesson 1

SQL Trace Handling


1. Execute the function you would like to trace at least once without tracing your
work. This step is necessary for filling buffers.

2. Enter transaction ST05.

3. Under the heading Select Trace: Select SQL Trace.

4. Choose Activate Trace.

5. Proceed, in another session, with the action you would like to trace.

6. After the action of interest has been finished, switch back to the session offering
ST05 and choose Deactivate Trace.

7. To display the recorded trace, choose Display Trace.

8. The default settings on the popup screen are relevant for your last active trace.
You can proceed without changing any settings, unless you would like to evaluate
an older trace recording.
ADM315 Unit 5 Lesson 1

SQL Trace Handling


9. As a result you get the Trace List.
ADM315 Figure 82: The Trace List Unit 5 Lesson 1
ADM315 Unit 5 Lesson 1

Trace List Interpretation


In the Durntn column, you find the time consumed by the corresponding database
operation. The unit for time is microseconds: 1,000,000 s make one second.
Values higher than 100,000 s are marked in red. There is no further meaning
behind this coloring. You can access F1 help for basic information on all fields in the
Trace List.

The Program Name column displays the name of the accessed database object.
The Object Name column displays the name of the database operation carried out.
In all relevant cases, Explain, will be carried out for operation Reopen. The operation
open means that a specific DB operation is carried out for the first time. Following
identical operations are named reopen. The other possible DB operations are not of
central relevance for our goal. You may go to the database manufacturers
documentation to get more information on these operations.

The Recs column displays the number of fetched records.


The Statement column displays the executed SQL statement, perhaps in an
abbreviated format.
ADM315 Unit 5 Lesson 1

Trace List Interpretation


You can choose Perform Explain for SQL statement (F9) on a row containing the
operation reopen or open.
ADM315 Figure 83: Analyze Function within the Explain Unit 5 Lesson 1
Screen
ADM315 Figure 84: Analyze Function within the Explain Unit 5 Lesson 1
Screen
ADM315 Unit 5 Lesson 1

Collected Data Analysis


Which of the business processes in my productive system have the highest total
SQL executions, longest runtime, or read the most data?

What is the SQL profile of my main business process (for example, transaction X)?
Which SQL statement has the highest execution time?
Which SQL statement is executed most frequently in my custom code?
ADM315 Unit 5 Lesson 1

SQL Monitor Features


Can be switched on for all or dedicated servers of an ABAP system
Can trace each and every SQL statement coming from an ABAP program
Can be run in a production system without impacting the running business
processes
ADM315 Figure 92: SQL Monitor Unit 5 Lesson 1
ADM315 Figure 93: SQL Monitor: Display Data Unit 5 Lesson 1
ADM315 Figure 94: SQL Monitor: Aggregated Records Unit 5 Lesson 1
ADM315 Figure 95: SQL Monitor Display: Activate SQL Unit 5 Lesson 1
Trace
ADM315

Summary
You should now be able to:

Identify expensive SQL statements


Examine different types of expensive SQL statements
Detect expensive SQL statements with the Work Process Overview
Detect expensive SQL statements using the transaction profile and statistical
records

Apply the database monitor


Monitor database buffer gets
Optimize runtimes of expensive SQL statements
Detect expensive SQL statements using SQL Monitor
ADM315 Unit 5 Lesson 2

Lesson 2: Tuning Expensive SQL Statements

Lesson Objectives
After completing this lesson, you will be able to:

Tune the runtime of expensive SQL statements


ADM315 Unit 5 Lesson 2

Lesson Agenda
Learn About:
SQL Statement Index Application

Database Statistics

ABAP Trace Application

Expensive SQL Statement Management

Watch:
How to Tune Expensive SQL Statement Issues

Do:
Tune Expensive SQL Statement Issues
ADM315 Unit 5 Lesson 2

Database Statistics
The structure of the queried table as expressed by its statistics.
The fields specified in the WHERE clause of the SQL statement.
The availability of indexes for the queried tables.
ADM315 Figure 96: Checking the Optimizer Decisions Unit 5 Lesson 2
Using Explain
ADM315 Unit 5 Lesson 2

Recommended Refresh Works


1. Call transaction DB13 to schedule a check of tables that need an update on their
statistics.

2. As a result of this check, all tables that have experienced more than a certain
degree of changes during a specified period (for example, one week) will be written
(by name) in table DBSTATC. This check should run, for example, once a week.

3. Once per week DBSTATC is evaluated and the statistics of the tables listed there
are refreshed. As the content of DBSTATC is subject to change, the number of
tables with statistic updates might also change from week to week.
ADM315 Figure 97: Analyze Function in Transaction DB20 Unit 5 Lesson 2
ADM315 Figure 98: Tips for Optimizing ABAP Coding Unit 5 Lesson 2
ADM315 Figure 99: Using Tips and Tricks Unit 5 Lesson 2
ADM315 Figure 100: Identify and Tune Expensive SQL Unit 5 Lesson 2
Statements 1 of 2
ADM315 Figure 101: Identify and Tune Expensive SQL Unit 5 Lesson 2
Statements 2 of 2
ADM315

Summary
You should now be able to:

Tune the runtime of expensive SQL statements


Unit 6: SAP Table Buffering

Lesson 1: Describing Table Buffer Usage in SAP Systems

Lesson 2: Analyzing Table Buffering Performance Issues


ADM315 Unit 6 Lesson 1

Lesson 1: Describing Table Buffer Usage in SAP Systems

Lesson Objectives
After completing this lesson, you will be able to:

Describe table buffering

Identify buffer synchronization

Identify SQL statements that bypass the table buffers

Identify when tables should or should not be buffered


ADM315 Unit 6 Lesson 1

Lesson Agenda
Learn About:
Table Buffers in the SAP System

Advantages of Table Buffering

Table Buffer Options

Table Buffering in Central SAP Systems

Outdated Data in Table Buffers

Buffer Content Validity

Types of SQL Statements that Bypass Buffered Table Content

SQL Statements that Utilize Specific Types of Buffering

Restrictions on Table Buffering


ADM315 Unit 6 Lesson 1

Lesson Agenda
Recommendations for Table Buffering

Watch:
How to Display Buffer Settings for Tables

Do:
Display Buffer Settings for Tables
ADM315 Figure 109: Table Buffers in SAP Systems Unit 6 Lesson 1
ADM315 Unit 6 Lesson 1

Advantages of Access to Data Residing in Local Memory


Makes data access many times faster
Reduces the load on the database
Reduces the load on the network and on CPU
The work process is freed more quickly for other work
ADM315 Figure 110: Advantages of Table Buffering Unit 6 Lesson 1
ADM315 Unit 6 Lesson 1

Table Buffer Settings


Fully buffered: During the first access to this table, all table content is copied
to the table buffer on the SAP instance. For client-dependent tables only the client-
specific data is buffered.

Generic area buffered: You set the number of key fields for the table used to
determine the data to be buffered during access. This is also known as generic key
buffering.

Single record buffered: Each individual record accessed is buffered on the


SAP instance.
ADM315 Figure 111: Different Options for Table Buffering Unit 6 Lesson 1
ADM315 Figure 112: Table Buffering in Central SAP Unit 6 Lesson 1
Systems
ADM315 Figure 113: Danger of Reading Old Data from a Unit 6 Lesson 1
Table Buffer
ADM315 Figure 114: How to Keep the Buffer Content Valid Unit 6 Lesson 1
ADM315 Unit 6 Lesson 1

Types of SQL Statements that Bypass Buffered Table Content


SELECT ... BYPASSING BUFFER
SELECT SINGLE... FOR UPDATE
SELECT DISTINCT
ORDER BY (other than the primary key)
Any aggregate function (COUNT, MIN, MAX, SUM, AVG), for example SELECT
MIN(F1) FROM T1 WHERE...

WHERE clause contains IS NULL


GROUP BY
JOINs
Subqueries
ADM315 Unit 6 Lesson 1

Types of SQL Statements that Bypass Buffered Table Content


All native SQL statements
ADM315 Unit 6 Lesson 1

Restrictions on Table Buffering


For tables that are delivered by SAP as Buffering not allowed, do not activate
any type of buffering.

Do not activate buffering for tables that contain data that must not be read/
evaluated when outdated.

Do not activate buffering for tables holding transaction data.


ADM315 Unit 6 Lesson 1

Recommendations for Table Buffering


Switch on table buffering for tables that are seldom changed.
Switch on table buffering for tables that are often accessed.
Only in special cases, activate buffering for tables larger than 1 MB.
Table buffering is especially effective for tables usually accessed by their primary
key.

When activating the buffering for new tables, the table buffers should offer enough
free space to hold the expected amount of data.

Customizing data should usually be buffered.


ADM315 Figure 115: Database Access Unit 6 Lesson 1
ADM315 Figure 116: Increased Performance for Buffer Unit 6 Lesson 1
Access
ADM315

Summary
You should now be able to:

Describe table buffering


Identify buffer synchronization
Identify SQL statements that bypass the table buffers
Identify when tables should or should not be buffered
ADM315 Unit 6 Lesson 2

Lesson 2: Analyzing Table Buffering Performance Issues

Lesson Objectives
After completing this lesson, you will be able to:

Identify buffering problems


ADM315 Unit 6 Lesson 2

Lesson Agenda
Learn About:
Buffering Problem Detection

Buffering Problem Detection Using the Transaction Profile

Buffering Problem Detection Using Table Call Statistics


ADM315 Figure 117: Using ST03 to Identify Buffering Unit 6 Lesson 2
Problems
ADM315 Unit 6 Lesson 2

Table Call Statistics Information


The buffering modes for all accessed tables; many tables are not buffered at all.
For buffered tables, the number of invalidations.
Detailed information on the activity concerning the tables, as requests from the
ABAP side of the SAP system and the corresponding database activity (such as
INSERT, UPDATE, and DELETE).

By choosing next view (CTRL + F3), information such as the volume of buffered
data for individual tables and the peak volume buffered for those.
ADM315 Figure 118: Identify How Often Tables are Unit 6 Lesson 2
Accessed
ADM315 Figure 119: Getting more Information from Unit 6 Lesson 2
Transaction ST10
ADM315 Figure 120: Using Transaction ST10 to Identify Unit 6 Lesson 2
Buffering Problems
ADM315

Summary
You should now be able to:

Identify buffering problems


Unit 7: Remote Function Call (RFC) Monitoring

Lesson 1: Identifying the Basics of Remote Function Calls (RFC)

Lesson 2: Monitoring RFC Loads


ADM315 Unit 7 Lesson 1

Lesson 1: Identifying the Basics of Remote Function Calls (RFC)

Lesson Objectives
After completing this lesson, you will be able to:

Describe RFC communication

Identify the different types of RFCs

Describe the impact of RFC communication time allocation on response time

Use statistical records to view RFC time


ADM315 Unit 7 Lesson 1

Lesson Agenda
Learn About:
Selected Interface Technologies Used in an SAP Environment

RFC Call Usage

Types of RFC Calls

RFC Communication Terminology

Roll Wait Time as Part of RFC+CPIC Time

Time Components as Displayed in the Statistical Records

Parameters for Collecting Statistical Data


ADM315 Figure 121: Interfaces in an SAP System Unit 7 Lesson 1
Environment
ADM315 Figure 122: Principle of an RFC Call Unit 7 Lesson 1
ADM315 Unit 7 Lesson 1

Purposes of RFCs
Communication between two SAP systems, or between an SAP system and a non-
SAP system

Communication between an SAP instance and the SAP GUI


Starting processes in parallel within one SAP system
ADM315 Unit 7 Lesson 1

RFC Call Types


Synchronous RFC (sRFC) Used for communication between systems, and for
communication between the SAP instance and SAP GUI.

Asynchronous RFC (aRFC) Used for communication between systems, and for
parallel processing.

Transactional RFC (tRFC) A specialized aRFC that is used for transactional,


safe communication between systems.

Queued RFC (qRFC) A specialized tRFC (and aRFC) that is used for multiple
communication steps in a specified order.

Background RFC (bgRFC) A replacement for the classic tRFC and qRFC, available
with SAP NetWeaver AS 7.00.
ADM315 Figure 123: Dialog Step with Synchronous RFC Unit 7 Lesson 1
and Round Trip
ADM315

Summary
You should now be able to:

Describe RFC communication


Identify the different types of RFCs
Describe the impact of RFC communication time allocation on response time
Use statistical records to view RFC time
ADM315 Unit 7 Lesson 2

Lesson 2: Monitoring RFC Loads

Lesson Objectives
After completing this lesson, you will be able to:

Monitor RFC performance

Monitor an RFC backlog

Analyze the RFC aggregated view in ST03

View RFC sub-records in STAD

Monitor RFC calls via performance trace

Test connection performance with SM59

Perform resource monitoring

Resolve RFC load issues


ADM315 Unit 7 Lesson 2

Lesson Agenda
Learn About:
RFC Monitoring Requirements

RFC Communication Bottleneck Detection

RFC Data in ST03

ST03: RFC Client Profile

ST03: RFC Server Profile

ST03: Client and Server Destinations

RFC Sub-Records Retrieval

RFC Sub-Records Analysis

Performance Trace
ADM315 Unit 7 Lesson 2

Lesson Agenda
Benefits of Running a Performance Trace

Connection Performance Testing

Resource Monitoring in RFC Scenarios

Incoming RFC Load Control at the Server

RFC Load Monitoring

RFC Resources Allocation

RFC Load Control

Related Information: Monitoring RFC Loads

Watch:
How to Monitor RFC Load and Resolve RFC Load Issues
ADM315 Unit 7 Lesson 2

Lesson Agenda
Do:
Monitor RFC Load and Resolve RFC Load Issues
ADM315 Figure 124: RFC Server Profile and More Unit 7 Lesson 2
ADM315 Figure 125: RFC Calls in STAD, Calling System/ Unit 7 Lesson 2
Client System
ADM315 Figure 126: RFC Monitoring: RFC+CPIC Time as Unit 7 Lesson 2
Seen at the Client in the Dialog Step Record
ADM315 Figure 127: RFC Sub-Records in Detail - STAD Unit 7 Lesson 2
ADM315 Figure 128: Performance Trace: RFC Record Unit 7 Lesson 2
ADM315 Figure 129: Performance Trace: RFC Record Unit 7 Lesson 2
Details
ADM315 Figure 130: Transactional RFCs Unit 7 Lesson 2
ADM315 Figure 131: aRFC Quotas Setting Unit 7 Lesson 2
ADM315

Summary
You should now be able to:

Monitor RFC performance


Monitor an RFC backlog
Analyze the RFC aggregated view in ST03
View RFC sub-records in STAD
Monitor RFC calls via performance trace
Test connection performance with SM59
Perform resource monitoring
Resolve RFC load issues

You might also like