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
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
Unit 1 Lesson 1
ADM315
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
Unit 1 Lesson 1
ADM315
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
Unit 1 Lesson 1
ADM315
Figure 1: SAP Systems and Releases of Software Component SAP_Basis
Unit 1 Lesson 1
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.
SM66
Transaction SM66, which shows a global view of all work processes, can now be accessed through SM50 in SAP NetWeaver 7.4.
SM04
User sessions are monitored, including information, such as a session 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 Performance Analysis
Unit 1 Lesson 1
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
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
Unit 1 Lesson 1
ADM315
Figure 3: Workload Distribution
Unit 1 Lesson 1
ADM315
Figure 4: System and Dialog Response Time Components
Unit 1 Lesson 1
ADM315
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
Unit 1 Lesson 1
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 Time
Unit 1 Lesson 1
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 and Roundtrips to the Front End
Unit 1 Lesson 1
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 user’s 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 time
SAP buffers (Program, CUA or Screen) are too small
High enqueue time
Very large enqueue table, many lock requests
High database request time CPU/memory bottleneck on database server; communication problem with database server, expensive SQL statements, 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 system, 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
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
Unit 1 Lesson 2
ADM315
Lesson Agenda Do:
●
Determine the Average Dialog Response Time for a Given Period
Unit 1 Lesson 2
ADM315
Figure 11: ST03: Workload Monitor - Last Minute Load Screen
Unit 1 Lesson 2
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 View
Unit 1 Lesson 2
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 Records
Unit 1 Lesson 2
ADM315
Figure 15: STAD: Single Statistical Records on Display: Subview Time
Unit 1 Lesson 2
ADM315
Figure 16: Data Flow for STAD and ST03
Unit 1 Lesson 2
Unit 1 Lesson 2
ADM315
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: :\usr\sap\ \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
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
Unit 2 Lesson 1
ADM315
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
Unit 2 Lesson 1
ADM315
Lesson Agenda ●
Buffer Problems and Solutions
Watch:
●
How to Analyze the Workload to Determine Performance Issues
Do:
●
Analyze the Workload to Determine Performance Issues
Unit 2 Lesson 1
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
Unit 2 Lesson 1
ADM315
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.
Unit 2 Lesson 1
ADM315
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
Transaction SM50: Details User ID ID of the user session whose request is currently being processed.
Unit 2 Lesson 1
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 Monitoring Analysis
Unit 2 Lesson 1
ADM315
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
Unit 2 Lesson 1
ADM315
Operating System Monitor Information ● Virtual memory ● Physical memory ● CPU ● File system administration ● Physical disk ● Network
Unit 2 Lesson 1
ADM315
Figure 21: Entry Screen for the Operating System Monitor (ST06)
Unit 2 Lesson 1
ADM315
Figure 22: Operating System Monitor, Top 40 CPU Processes
Unit 2 Lesson 1
ADM315
Figure 23: Buffer Monitor Entry Screen (ST02)
Unit 2 Lesson 1
ADM315
Buffer Monitor Information ● SAP buffer and memory configuration ● Buffer status and memory usage
Unit 2 Lesson 1
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
Lesson 2: Implementing Dynamic Work Processes Lesson Objectives After completing this lesson, you will be able to:
●
Activate the configuration process
Unit 2 Lesson 2
ADM315
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
Unit 2 Lesson 2
ADM315
Figure 32: Dynamic Work Processes and Associated Parameters
Unit 2 Lesson 2
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
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
Unit 3 Lesson 1
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 Memory
Unit 3 Lesson 1
ADM315
Figure 37: Shared Memory: SAP Paging Area
Unit 3 Lesson 1
ADM315
Figure 38: Local Memory
Unit 3 Lesson 1
ADM315
Work Process Data ● ABAP Load being executed ● Stack ● Static data ● Buffer for database transfer ● Local paging area
Unit 3 Lesson 1
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
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
Unit 3 Lesson 1
ADM315
Summary You should now be able to:
● Identify the types of memory areas ● Assign memory areas
ADM315
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
Unit 3 Lesson 2
ADM315
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
Unit 3 Lesson 2
ADM315
Figure 41: Private Area of the Dialog Work Process
Unit 3 Lesson 2
ADM315
Figure 42: User Context and Extended Memory Pool
Unit 3 Lesson 2
ADM315
Figure 43: Work Processes Processing One Step at a Time
Unit 3 Lesson 2
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 Extended Memory
Unit 3 Lesson 2
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 Work Process Types
Unit 3 Lesson 2
ADM315
Figure 55: Heap Memory is Released by the Work Process...
Unit 3 Lesson 2
ADM315
Figure 56: ... but SWAP Space Might Stay Allocated
Unit 3 Lesson 2
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 1
Unit 3 Lesson 2
ADM315
Figure 60: SAP Memory Management Parameters 2
Unit 3 Lesson 2
Unit 3 Lesson 2
ADM315
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
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
Unit 3 Lesson 3
ADM315
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
Unit 3 Lesson 3
ADM315
Figure 62: Problems with Many Dialog Work Processes in PRIV Mode
Unit 3 Lesson 3
ADM315
Figure 63: Detecting Insufficient Extended Memory
Unit 3 Lesson 3
ADM315
Figure 64: Controlling PRIV Modes
Unit 3 Lesson 3
ADM315
Figure 65: Roadmap to Detect and Solve Problems with Extended Memory
Unit 3 Lesson 3
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
Lesson 1: Identifying Hardware Bottlenecks Lesson Objectives After completing this lesson, you will be able to:
●
Analyze Hardware bottleneck issues
Unit 4 Lesson 1
ADM315
Lesson Agenda Learn About:
●
Hardware Performance Issues
●
Hardware Analysis Roadmaps
Watch:
●
How to Identify Hardware Performance Issues
Do:
●
Identify Hardware Performance Issues
Unit 4 Lesson 1
ADM315
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)
Unit 4 Lesson 1
ADM315
Figure 66: Hardware Analysis Roadmap 1
Unit 4 Lesson 1
ADM315
Unit 4 Lesson 1
CPU Bottlenecks 1. Choose ST06 → Systems → 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
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
Unit 4 Lesson 2
ADM315
Lesson Agenda Learn About:
●
Memory Configuration Recommendations
●
CPU Configuration Recommendations
Unit 4 Lesson 2
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 Instance, as shown in ST02
Unit 4 Lesson 2
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
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
Unit 5 Lesson 1
ADM315
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
Unit 5 Lesson 1
ADM315
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
Unit 5 Lesson 1
ADM315
Figure 71: Consequences of Expensive SQL Statements
Unit 5 Lesson 1
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 system’s total response time (contributes >5% to the summed up dialog response times)?
ADM315
Figure 72: Two Types of Expensive SQL Statements
Unit 5 Lesson 1
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 Transactions
Unit 5 Lesson 1
ADM315
Figure 75: Detection Using the Transaction Profile
Unit 5 Lesson 1
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 Details
Unit 5 Lesson 1
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
SQL Trace Handling 9. As a result you get the Trace List.
Unit 5 Lesson 1
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 Screen
Unit 5 Lesson 1
ADM315
Figure 84: Analyze Function within the Explain Screen
Unit 5 Lesson 1
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 Trace
Unit 5 Lesson 1
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
Lesson 2: Tuning Expensive SQL Statements Lesson Objectives After completing this lesson, you will be able to:
●
Tune the runtime of expensive SQL statements
Unit 5 Lesson 2
ADM315
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
Unit 5 Lesson 2
ADM315
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.
Unit 5 Lesson 2
ADM315
Figure 96: Checking the Optimizer Decisions Using Explain
Unit 5 Lesson 2
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 Statements 1 of 2
Unit 5 Lesson 2
ADM315
Figure 101: Identify and Tune Expensive SQL Statements 2 of 2
Unit 5 Lesson 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
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
Unit 6 Lesson 1
ADM315
Lesson Agenda ●
Recommendations for Table Buffering
Watch:
●
How to Display Buffer Settings for Tables
Do:
●
Display Buffer Settings for Tables
Unit 6 Lesson 1
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 clientspecific 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 Systems
Unit 6 Lesson 1
ADM315
Figure 113: Danger of Reading Old Data from a Table Buffer
Unit 6 Lesson 1
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 Access
Unit 6 Lesson 1
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
Lesson Agenda Learn About:
●
Buffering Problem Detection
●
Buffering Problem Detection Using the Transaction Profile
●
Buffering Problem Detection Using Table Call Statistics
Unit 6 Lesson 2
ADM315
Figure 117: Using ST03 to Identify Buffering Problems
Unit 6 Lesson 2
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 Accessed
Unit 6 Lesson 2
ADM315
Figure 119: Getting more Information from Transaction ST10
Unit 6 Lesson 2
ADM315
Figure 120: Using Transaction ST10 to Identify Buffering Problems
Unit 6 Lesson 2
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
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
Unit 7 Lesson 1
ADM315
Figure 121: Interfaces in an SAP System Environment
Unit 7 Lesson 1
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 nonSAP 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 and Round Trip
Unit 7 Lesson 1
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
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
Unit 7 Lesson 2
ADM315
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
Unit 7 Lesson 2
ADM315
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
Unit 7 Lesson 2
ADM315
Lesson Agenda Do:
●
Monitor RFC Load and Resolve RFC Load Issues
Unit 7 Lesson 2
ADM315
Figure 124: RFC Server Profile and More
Unit 7 Lesson 2
ADM315
Figure 125: RFC Calls in STAD, Calling System/ Client System
Unit 7 Lesson 2
ADM315
Figure 126: RFC Monitoring: RFC+CPIC Time as Seen at the Client in the Dialog Step Record
Unit 7 Lesson 2
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 Details
Unit 7 Lesson 2
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