Table of Contents

Open all
Close all
Preface and Acknowledgements
19
Introduction
21
Proactive Performance Management
21
Current Developments
24
About This Book
27
1 Performance Management of an SAP Solution
35
1.1 SAP Solution Architecture
36
1.1.1 SAP Solutions and SAP Components
36
1.1.2 Application Scenarios for SAP HANA
39
1.1.3 Client/Server Architecture
43
1.2 Monitoring and Optimization Plan for an SAP Solution
52
1.2.1 Requirements of a Monitoring and Optimization Plan
52
1.2.2 Service Level Management
56
1.2.3 Plan for Continuous Performance Optimization
62
1.2.4 Tools and Methods for the Monitoring and Optimization Plan
68
1.2.5 SAP Solution Manager
71
1.3 Summary
73
2 Analysis of Hardware, Database, and ABAP Application Server
77
2.1 Basic Terms
78
2.2 Hardware Monitoring
79
2.2.1 Analysis of a Hardware Bottleneck (CPU and Main Memory)
81
2.2.2 Identifying Read/Write (Input/Output) Problems
88
2.2.3 Parameter Changes and Network Check
89
2.3 Database Monitoring
91
2.3.1 Performance Monitor in the Database Administration Cockpit
92
2.3.2 Analyzing the Database Main Memory
94
2.3.3 Identifying Expensive SQL Statements
96
2.3.4 Identifying Read/Write (Input/Output) Problems
103
2.3.5 Other Database Checks
105
2.4 Analyzing SAP Memory Configuration
113
2.4.1 Analyzing SAP Buffers
114
2.4.2 Analyzing SAP Extended Memory, SAP Heap Memory, and SAP Roll Memory
116
2.4.3 Displaying Allocated Memory
118
2.4.4 Other Monitors for Detailed Analysis
120
2.5 Analyzing SAP Work Processes
122
2.5.1 Work Process Overview Fields
122
2.5.2 Analyzing Work Processes
126
2.5.3 Monitoring the Dispatcher Queue
129
2.6 Analysis of the Internet Communication Manager
131
2.7 Summary
132
2.8 Questions
133
3 Workload Analysis
135
3.1 Basics of Workload Analysis and Runtime Analysis
136
3.2 Workload Monitor
138
3.2.1 Working with the Workload Monitor
139
3.2.2 Technical Settings for the Workload Monitor
141
3.3 Workload Analysis
142
3.3.1 Transaction Step Cycle
142
3.3.2 Other Time Components
145
3.3.3 Interpreting Response Times
147
3.3.4 Activity, Throughput, and Load
149
3.4 Performing Workload Analyses
151
3.4.1 Analyzing General Performance Problems
151
3.4.2 Analyzing Specific Performance Problems
158
3.5 Single-Record Statistics
161
3.6 End-to-End Workload Analysis
166
3.6.1 Basics of End-to-End Workload Analysis
166
3.6.2 Central Workload Monitor
167
3.6.3 End-to-End Workload Monitor and Runtime Analysis in SAP Solution Manager
172
3.6.4 Central Single-Record Statistics
172
3.6.5 End-to-End Runtime Analysis in SAP Solution Manager
176
3.7 Summary
180
3.8 Questions
182
4 Hardware Sizing and Component Distribution
185
4.1 Initial Hardware Sizing
186
4.1.1 Overview of the Project for Initial Sizing
187
4.1.2 Sizing Methods
192
4.1.3 Performing a Sizing Project in Detail
197
4.1.4 SAP Standard Application Benchmarks
200
4.2 Sizing to Deal with Increased Workload, Change of Release, or Migration
206
4.2.1 A Sizing Project in an Installation Environment Already in Use
206
4.2.2 Performing Sizing in Installation Environments Used in Production
208
4.2.3 SAP HANA Migration
215
4.3 Planning the System Landscape
217
4.3.1 Virtualization and Hardware Consolidation
218
4.3.2 Scaling at the Database Level for SAP HANA
221
4.3.3 Distribution of SAP Application Instances
224
4.4 Summary
225
4.5 Questions
225
5 Optimization of ABAP Programs
227
5.1 Performance Trace
227
5.1.1 Activating a Performance Trace
228
5.1.2 Evaluating an SQL Trace
229
5.1.3 Other Functions in the SQL Trace
234
5.1.4 Evaluating a Buffer Trace
236
5.1.5 Evaluating a Remote Function Call Trace
237
5.1.6 Evaluating an HTTP Trace
238
5.1.7 Evaluating an Enqueue Trace
239
5.2 Performance Analysis with ABAP Trace (Runtime Analysis)
240
5.2.1 Activating an ABAP Trace
241
5.2.2 Evaluating an ABAP Trace
243
5.2.3 Using Variations
245
5.2.4 Using Timeline Views
247
5.3 Analyzing Memory Usage with ABAP Debugger and in the Memory Inspector
249
5.4 Code Inspector
252
5.5 Tips and Tricks for High-Performance ABAP Programs
254
5.6 Summary
260
5.7 Questions
261
6 Memory Management
263
6.1 Memory Management Fundamentals
263
6.1.1 Basic Terms
263
6.1.2 Memory Areas of the SAP Instance
265
6.1.3 Zero Administration Memory Management
268
6.1.4 Technical Implementation in Detail
268
6.1.5 Summary
278
6.2 Configuring and Monitoring Memory Areas
279
6.2.1 Monitoring Swap Space
280
6.2.2 Configuring and Monitoring SAP Memory Areas
282
6.2.3 Assistance with Troubleshooting
285
6.3 Summary
292
6.4 Questions
294
7 Load Distribution, Remote Function Calls, and SAP GUI
297
7.1 Services of SAP NetWeaver Application Server
298
7.2 Load Distribution within the ABAP Instances
301
7.2.1 Distributing Message and Enqueue Services
303
7.2.2 Distributing Dialog, Background, and Spool Work Processes
303
7.2.3 Distributing Users and Work Processes over CPU Resources
304
7.2.4 Dynamic User Distribution: Configuring Logon Groups
307
7.2.5 Load Distribution Concept for Dialog Work Processes
310
7.2.6 Limiting Resources per User
313
7.2.7 Operation Modes
314
7.2.8 Configuring Dynamic Work Processes
315
7.2.9 Background Processing
315
7.2.10 Update
316
7.3 Remote Function Calls
323
7.3.1 Fundamentals and Concepts
324
7.3.2 Remote Function Call Cycle
327
7.3.3 Configuring and Testing Remote Function Call Destinations
330
7.3.4 Selecting Serialization
334
7.3.5 Monitoring Inbound and Outbound Loads
336
7.3.6 Configuring Parallel Processes with Asynchronous Remote Function Calls
341
7.3.7 Monitoring Data Transfer with Transactional Remote Function Calls
342
7.3.8 Background Remote Function Calls
343
7.4 SAP Graphical User Interface
344
7.4.1 Interaction Model and Performance Measurement
344
7.4.2 Analyzing and Optimizing the Performance of GUI Communication
347
7.5 Summary
352
7.6 Questions
355
8 Internet Connection and SAP Fiori
357
8.1 SAP Web Applications
358
8.2 Analyses on the Presentation Server
362
8.2.1 Performance Tools of Internet Browsers
365
8.2.2 SAP Statistics in the HTTP Request
366
8.2.3 Continuously Monitoring Web Applications
369
8.3 Buffering of Web Documents
370
8.3.1 Browser Buffer (Browser Cache)
370
8.3.2 Buffer in the Internet Communication Manager and SAP Web Dispatcher
373
8.3.3 Content Delivery Network
375
8.3.4 Summary: Using Buffers in Web Applications
376
8.4 Performance Analysis of Web Applications on SAP NetWeaver AS ABAP
376
8.4.1 HTTP Trace in the Internet Communication Manager
377
8.4.2 Performance Analysis of ABAP Web Applications
378
8.4.3 Monitoring Web Service Calls
381
8.5 BSPs, Web Dynpro for ABAP, and Integrated ITS
381
8.5.1 Business Server Pages and Web Dynpro ABAP
382
8.5.2 Integrated Internet Transaction Server
385
8.6 SAP Fiori, SAPUI5, and OData Services
386
8.6.1 Basic Principles of SAP Fiori, SAPUI5, and OData
387
8.6.2 Structure of an SAP Fiori System Landscape
388
8.6.3 General Performance Aspects of SAP Fiori, SAPUI5, and OData
392
8.6.4 SAP Fiori, SAPUI5, and OData on the SAP NetWeaver Application Server ABAP
395
8.7 Conclusion
402
8.8 Questions
403
9 Optimizing Java Programs
405
9.1 Garbage Collection
407
9.1.1 Construction of the Java Heap
407
9.1.2 Garbage Collection Algorithms
409
9.1.3 Selection of Collectors
410
9.1.4 Parameterization of Java Heap Memory and Garbage Collection
411
9.1.5 Logging Garbage Collections
413
9.2 Just-in-Time Compiler
413
9.3 SAP Management Console
415
9.4 SAP Java Virtual Machine Profiler
417
9.4.1 Architecture
417
9.4.2 Establishing the Connection
418
9.4.3 Allocation Analysis
421
9.4.4 Performance HotSpot Analysis
427
9.4.5 Method Parameter Analysis
431
9.4.6 Synchronization Analysis
434
9.4.7 File and Network Input/Output Analysis
436
9.4.8 Garbage Collection Analysis
438
9.4.9 Class Statistics and Heap Dump
441
9.5 Memory Analyzer
443
9.5.1 Creating HPROF Files
443
9.5.2 Analysis of the Java Heap with the Memory Analyzer
444
9.6 Other Tools for Performance Analysis on the SAP NetWeaver AS Java
446
9.7 Summary
448
9.8 Questions
449
10 Locks
451
10.1 Lock Concepts of Database System and SAP System
452
10.1.1 Database Locks
452
10.1.2 SAP Enqueues
453
10.1.3 Read Consistency
455
10.2 Monitoring Locks
457
10.2.1 Database Locks
457
10.2.2 SAP Enqueues
462
10.2.3 Read Consistency
465
10.3 Number Range Buffering
466
10.3.1 Fundamentals
466
10.3.2 Activating Number Range Buffering
471
10.3.3 Monitoring Number Range Buffering
472
10.4 Locking with Quantities and the Available-to-Promise Server
473
10.4.1 Fundamentals
474
10.4.2 Configuring the Available-to-Promise Server
475
10.4.3 Monitoring the Available-to-Promise Server
478
10.5 Summary
479
10.6 Questions
479
11 Optimizing SQL Statements
481
11.1 Identifying and Analyzing Expensive SQL Statements
483
11.1.1 Identification and Preliminary Analysis
483
11.1.2 Detailed Analysis
485
11.2 Optimizing SQL Statements in Programs
490
11.2.1 The Five Golden Rules for Efficient SQL Programming
490
11.2.2 Example of Optimizing an SQL Statement in an ABAP Program
496
11.2.3 Presetting Field Values in Report Transactions
506
11.3 Optimizing SQL Statements through Secondary Indexes
511
11.3.1 Database Organization Fundamentals
511
11.3.2 Administration for Indexes and Table Access Statistics
522
11.3.3 Rules for Creating or Changing Secondary Indexes
528
11.4 Summary
537
11.5 Questions
539
12 SAP Buffering
543
12.1 Table Buffering Fundamentals
545
12.1.1 Buffering Types
545
12.1.2 Buffer Accessing
548
12.1.3 Buffer Synchronization
550
12.1.4 Activating Buffering
553
12.1.5 Which Tables Should Be Buffered?
555
12.2 Monitoring Table Buffering on the ABAP Server
557
12.2.1 Table Access Statistics
558
12.2.2 Analyzing Buffered Tables
562
12.2.3 Analyzing Tables That Are Not Buffered Currently
566
12.2.4 Detailed Table Analysis
568
12.2.5 Monitoring Buffer Synchronization (Table DDLOG Entries)
571
12.2.6 Expensive SQL Statements Due to Incorrect Buffering
573
12.3 Monitoring Object-Oriented Application Buffers
574
12.4 Summary
580
12.5 Questions
581
13 Optimizing Database Queries with SAP HANA
583
13.1 Basic Principles of the Main Memory Database in SAP HANA
585
13.1.1 Column-Based Data Storage
587
13.1.2 Data Compression
588
13.1.3 Data Storage in Main Memory
592
13.1.4 Indexing
594
13.1.5 Text Search and Categorization
597
13.2 Architecture of SAP HANA
598
13.3 Data Modeling from a Performance View
601
13.3.1 Table and Index Design
601
13.3.2 Designing Database Views and SELECT Statements
603
13.3.3 Design of Writing Applications
613
13.4 SAP HANA Administration Tools for Performance Optimization
614
13.4.1 Analyzing Main Memory and CPU Resources
618
13.4.2 Identifying Expensive SQL Statements
625
13.4.3 Analyzing Expensive SQL Statements: Execution Plan and Plan Visualization
634
13.5 Technical Optimization Options in Detail
651
13.5.1 Monitoring Table Size, Loading, and Unloading
653
13.5.2 Monitoring Delta Indexes
659
13.5.3 Creating Indexes
665
13.5.4 SAP HANA Cached Views
668
13.5.5 Partitioning and Scaling
675
13.5.6 Reducing Data via Deletion or Displacement
680
13.5.7 Replication
688
13.6 Summary
691
13.7 Questions
693
14 Optimizing Queries in SAP Business Warehouse
695
14.1 Fundamentals of SAP Business Warehouse
696
14.1.1 Overview of the Most Important Concepts in SAP BW
697
14.1.2 InfoCubes and Extended Star Schemas
701
14.1.3 DataStore Objects
713
14.1.4 Data Modeling from a Performance View
716
14.1.5 Query Execution
719
14.2 SAP BW Administration Tools for Performance Optimization
721
14.2.1 Analysis of Expensive SAP BW Queries
722
14.2.2 SAP BW Statistics in the Workload Monitor
727
14.3 Technical Optimization Options in Detail
730
14.3.1 Managing Indexing and Database Statistics
732
14.3.2 Settings on Data Selection
739
14.3.3 Compressing the Fact Table
740
14.3.4 Monitoring the OLAP Cache
742
14.3.5 Optimizing Reports
746
14.3.6 Aggregates
747
14.4 Summary
757
14.5 Questions
759
Appendices
761
A Database Monitors
763
A.1 SAP MaxDB
767
A.2 SAP Adaptive Server Enterprise
777
A.3 IBM DB2 for Linux, UNIX, and Windows
784
A.4 IBM DB2 for IBM i
791
A.5 IBM DB2 for z/OS
803
A.6 Oracle
810
A.7 Microsoft SQL Server
819
B Important Transaction Codes
825
C Review Questions and Answers
831
C.1 Questions on Chapter 2: Analysis of Hardware, Database, and ABAP Application Server
831
C.2 Questions on Chapter 3: Workload Analysis
831
C.3 Questions on Chapter 4: Hardware Sizing and Component Distribution”
832
C.4 Questions on Chapter 5: Optimization of ABAP Programs
832
C.5 Questions on Chapter 6: Memory Management
833
C.6 Questions on Chapter 7: Load Distribution, Remote Function Calls, and SAP GUI”
833
C.7 Questions on Chapter 8: Internet Connection and SAP Fiori
833
C.8 Questions on Chapter 9: Optimizing Java Programs
834
C.9 Questions on Chapter 10: Locks
834
C.10 Questions on Chapter 11: Optimizing SQL Statements
835
C.11 Questions on Chapter 12: SAP Buffering
835
C.12 Questions on Chapter 13: Optimizing Database Queries with SAP HANA
835
C.13 Questions on Chapter 14: Optimizing Queries to SAP Business Warehouse
836
D Glossary
837
E Information Sources
849
E.1 General
849
E.2 Additional Information on Chapter 1
850
E.3 Additional Information on Chapter 2
851
E.4 Additional Information on Chapter 3
853
E.5 Additional Information on Chapter 4
854
E.6 Additional Information on Chapter 5
856
E.7 Additional Information on Chapter 6
857
E.8 Additional Information on Chapter 7
858
E.9 Additional Information on Chapter 8
859
E.10 Additional Information on Chapter 9
861
E.11 Additional Information on Chapter 10
862
E.12 Additional Information on Chapter 11
863
E.13 Additional Information on Chapter 12
863
E.14 Additional Information on Chapter 13
863
E.15 Additional Information on Chapter 14
866
F The Author
871
Index
873