Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort und Danksagung
17
Einleitung
19
1 Performancemanagement einer SAP-Lösung
33
1.1 Die Architektur von SAP S/4HANA
33
1.1.1 SAP S/4HANA
34
1.1.2 Client-Server-Architektur
41
1.2 Grundlegende Begriffe und Aufgaben der Performanceoptimierung
48
1.2.1 Die Parameter der Performanceoptimierung
48
1.2.2 Aufgaben, Rollen und Werkzeuge der Performanceoptimierung
52
1.3 Das Überwachungs- und Optimierungskonzept für eine SAP-Lösung
57
1.3.1 Anforderungen an ein Überwachungs- und Optimierungskonzept
57
1.3.2 Service Level Management
60
1.3.3 Werkzeuge für die Performanceüberwachung und Analyse
66
1.4 Zusammenfassung
72
2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver
75
2.1 Begriffsklärungen
76
2.2 Analyse der Workprozesse
77
2.2.1 Felder der Workprozess-Übersicht
77
2.2.2 Workprozess-Analyse durchführen
81
2.2.3 Überwachung der Dispatcher-Queue
84
2.2.4 Workprozess-Stichprobenanalyse (/SDF/SMON)
85
2.2.5 Workprozess-Stichprobenanalyse (technisches Monitoring)
87
2.2.6 Zusammenfassung
90
2.3 Hardwareanalyse
91
2.3.1 Analyse eines Hardwareengpasses (CPU und Hauptspeicher)
93
2.3.2 Identifizierung von Schreib-/Lese-(I/O-)Problemen
99
2.3.3 Parameteränderungen und Netzwerkcheck
100
2.3.4 Zusammenfassung
101
2.4 Datenbankanalyse
103
2.4.1 Performancemonitor im DBA-Cockpit
103
2.4.2 Analyse des Datenbankhauptspeichers
106
2.4.3 Identifizierung teurer SQL-Anweisungen
110
2.4.4 Weitere Analysen auf Datenbankebene
124
2.4.5 Zusammenfassung
130
2.5 Analyse der SAP-Speicherkonfiguration
131
2.5.1 Analyse der SAP-Puffer
132
2.5.2 Analyse des Extended Memorys und des Heap Memorys
134
2.5.3 Anzeige des allokierten Speichers
136
2.5.4 Weitere Monitore zur detaillierten Analyse
138
2.5.5 Zusammenfassung
139
2.6 Zusammenfassung
140
2.7 Übungsfragen
141
3 Workload-Analyse
143
3.1 Einführung in die Workload-Analyse
144
3.2 Einzelsatzstatistik
146
3.3 Details zur Workload-Analyse
151
3.3.1 Ablauf eines Anwendungsschrittes
151
3.3.2 Weitere Zeitkomponenten
155
3.3.3 Interpretation der Antwortzeiten
156
3.3.4 Aktivität, Durchsatz und Last
159
3.4 Workload-Monitor
161
3.4.1 Mit dem Workload-Monitor arbeiten
161
3.4.2 Technische Einstellungen zum Workload-Monitor
164
3.4.3 Profile im Workload-Monitor
165
3.5 Workload-Analyse durchführen
172
3.5.1 Liegt ein allgemeines Performanceproblem vor?
173
3.5.2 Liegt ein temporäres oder ein dauerhaftes Performanceproblem vor?
174
3.5.3 Liegt ein Hardwareengpass auf einem Rechner vor?
176
3.5.4 Liegt ein allgemeines Datenbankperformanceproblem vor?
177
3.5.5 Liegt ein Performanceproblem aufgrund falscher Lastverteilung vor?
178
3.5.6 Liegt ein Performanceproblem mit der SAP-Speicherverwaltung vor?
179
3.5.7 Liegt ein Performanceproblem mit einer Anwendung vor?
180
3.5.8 Liegt ein Netzwerkproblem zwischen Präsentationsserver und Applikationsserver vor?
181
3.6 Workload-Analyse mit dem technischen Monitoring
182
3.7 Zusammenfassung
188
3.8 Übungsfragen
190
4 Hardware-Sizing und Komponentenverteilung
193
4.1 Initiales Hardware-Sizing
193
4.1.1 Übersicht über das Projekt zum initialen Sizing
195
4.1.2 Sizing-Methoden
200
4.1.3 Sizing-Projekt im Detail durchführen
205
4.1.4 SAP Standard Application Benchmarks
209
4.2 Sizing bei Laststeigerung, Versionswechsel oder Migration
212
4.2.1 Übersicht über ein Sizing-Projekt im Umfeld einer bereits produktiven Installation
213
4.2.2 Sizing im Umfeld produktiver Installationen im Detail durchführen
214
4.2.3 SAP-HANA-Migration
219
4.3 Systemlandschaft planen
221
4.3.1 Skalierung der Datenbankebene
222
4.3.2 Skalierung der Applikationsebene
225
4.4 Zusammenfassung
226
4.5 Übungsfragen
227
5 Optimierung von ABAP-Programmen
229
5.1 Performance-Trace
229
5.1.1 Performance-Trace erstellen
230
5.1.2 SQL-Trace auswerten
233
5.1.3 Puffer-Trace auswerten
243
5.1.4 RFC-Trace auswerten
244
5.1.5 HTTP-Trace auswerten
244
5.1.6 Enqueue-Trace auswerten
245
5.2 Performanceanalyse mit dem ABAP-Trace (Laufzeitanalyse)
246
5.2.1 ABAP-Trace erstellen
247
5.2.2 ABAP-Trace auswerten
253
5.2.3 Zeitachsensicht verwenden
255
5.3 Analyse des Speicherverbrauchs mit dem ABAP Debugger und im Memory Inspector
257
5.4 Statische Codeprüfungen mit dem ABAP Test Cockpit
262
5.5 Tipps und Tricks für performante ABAP-Programme
266
5.6 Zusammenfassung
273
5.7 Übungsfragen
274
6 Speicherkonfiguration
277
6.1 Grundlagen der Speicherkonfiguration
277
6.1.1 Begriffsklärungen
277
6.1.2 Speicherbereiche der ABAP-Instanz
279
6.1.3 Zero Administration Memory Management
282
6.1.4 Benutzerquoten
282
6.1.5 Technische Realisierung im Detail
285
6.1.6 Zusammenfassung
293
6.2 Speicherbereiche konfigurieren und überwachen
294
6.2.1 Auslagerungsspeicher überwachen
294
6.2.2 Speicherbereiche konfigurieren und überwachen
296
6.2.3 Hilfe zur Fehlerbehebung
299
6.3 Zusammenfassung
306
6.4 Übungsfragen
308
7 Lastverteilung, Remote Function Calls und SAP GUI
311
7.1 Services des ABAP-Servers
312
7.2 Lastverteilung innerhalb der ABAP-Instanzen
314
7.2.1 Message- und Enqueue- Service verteilen
316
7.2.2 Dialog-, Hintergrund- und Spool-Workprozesse verteilen
317
7.2.3 Benutzer und Workprozesse auf CPU-Ressourcen verteilen
318
7.2.4 Dynamische Benutzerverteilung: Anmeldegruppen konfigurieren
320
7.2.5 Lastverteilungskonzept für Dialog-Workprozesse
322
7.2.6 Ressourcen pro Benutzer beschränken
325
7.2.7 Betriebsarten
326
7.2.8 Dynamische Workprozesse konfigurieren
327
7.2.9 Hintergrundverarbeitung
327
7.2.10 Verbuchung
328
7.3 Remote Function Calls
336
7.3.1 Grundlagen und Begriffe
336
7.3.2 RFC-Typen
339
7.3.3 Ablauf eines RFCs
341
7.3.4 Parallelisierung von Programmen
344
7.3.5 RFC-Verbindungen konfigurieren und testen
346
7.3.6 Serialisierung auswählen
350
7.3.7 Eingehende und ausgehende Last überwachen
351
7.3.8 Parallelisierung von Prozessen mit asynchronen RFCs konfigurieren
357
7.3.9 Datenübertragung mit transaktionalen und Hintergrund-RFCs überwachen
358
7.4 SAP GUI
360
7.4.1 Interaktionsmodell und Performancemessung
360
7.4.2 Performance der GUI-Kommunikation analysieren und optimieren
363
7.5 Zusammenfassung
367
7.6 Übungsfragen
370
8 Internetanbindung und SAP Fiori
373
8.1 SAP-Webanwendungen
374
8.1.1 Webservices und der Internet Communication Manager
375
8.1.2 Einsatz von Web UI und SAP GUI planen
378
8.2 Analysewerkzeuge für Webanwendungen
382
8.2.1 Performancewerkzeuge der Internetbrowser
386
8.2.2 SAP-Statistiken in der HTTP-Anfrage
387
8.2.3 Webanwendungen kontinuierlich überwachen
389
8.3 Pufferung von Webdokumenten
390
8.3.1 Browserpuffer (Browsercache)
390
8.3.2 Puffer im ICM und im SAP Web Dispatcher
393
8.3.3 Content Delivery Network
395
8.3.4 Zusammenfassung: Nutzung von Puffern in Webanwendungen
396
8.4 Business Server Pages, Web Dynpro ABAP und integrierter ITS
396
8.4.1 Business Server Pages und Web Dynpro ABAP
397
8.4.2 SAP GUI for HTML und integrierter ITS
399
8.4.3 Performanceanalyse für eine Web-GUI-Anwendung durchführen
400
8.5 SAP Fiori, SAPUI5 und OData-Services
401
8.5.1 Grundlagen von SAP Fiori, SAPUI5 und OData
401
8.5.2 Aufbau einer SAP-Fiori-Systemlandschaft
404
8.5.3 SAP-Gateway-Statistiken
407
8.5.4 Performance von SAP Fiori, SAPUI5 und OData optimieren
409
8.5.5 Pufferung von SAPUI5- und OData-Metadatendokumenten
413
8.5.6 Performanceanalyse für eine SAP-Fiori-Anwendung durchführen
417
8.6 Zusammenfassung
419
8.7 Übungsfragen
421
9 Sperren
423
9.1 Sperrkonzepte von Datenbanksystem und SAP-System
424
9.1.1 Datenbanksperren
424
9.1.2 Enqueues
425
9.1.3 Lesekonsistenz
427
9.2 Überwachung von Sperren
429
9.2.1 Datenbanksperren
429
9.2.2 Enqueues
434
9.2.3 Lesekonsistenz
436
9.3 Nummernkreispufferung
437
9.3.1 Grundlagen
437
9.3.2 Nummernkreispufferung einschalten
442
9.3.3 Nummernkreispufferung überwachen
443
9.4 Zusammenfassung
444
9.5 Übungsfragen
445
10 Optimierung von SQL-Anweisungen
447
10.1 Teure SQL-Anweisungen identifizieren und analysieren
449
10.1.1 Identifizierung und Voranalyse
449
10.1.2 Klassifizierung von teuren SQL-Anweisungen
453
10.2 Die fünf goldenen Regeln der performanten SQL-Programmierung
457
10.3 SQL-Anweisungen im Programm optimieren
465
10.3.1 Beispiel für die Optimierung eines ABAP-Programms
465
10.3.2 Vorbelegung von Feldern in Reporttransaktionen
473
10.4 SQL-Anweisungen durch Sekundärindizes optimieren
479
10.4.1 Ein wenig Theorie
479
10.4.2 Indizes anlegen
490
10.4.3 Allgemeine Regeln zum Anlegen oder Ändern von Sekundärindizes
494
10.4.4 Regeln für Sekundärindizes im SAP HANA Columns Store
497
10.4.5 Regeln für Sekundärindizes im SAP HANA Row Store und auf klassischen Datenbanken
500
10.4.6 Sekundärindizes bei der SAP-HANA-Migration
505
10.5 Zusammenfassung
507
10.6 Übungsfragen
510
11 Pufferung auf dem Applikationsserver
513
11.1 Pufferungsarten
514
11.2 Grundlagen der Tabellenpufferung
515
11.2.1 Arten der Tabellenpufferung
515
11.2.2 Pufferzugriffe
518
11.2.3 Pufferinvalidierung
520
11.2.4 Puffersynchronisation
521
11.2.5 Pufferung einschalten
524
11.2.6 Welche Tabellen sollen gepuffert werden?
528
11.3 Tabellenpufferung auf dem ABAP-Server überwachen
531
11.3.1 Tabellenzugriffsstatistik
532
11.3.2 Analyse der gepufferten Tabellen
535
11.3.3 Analyse der bisher nicht gepufferten Tabellen
540
11.3.4 Detaillierte Tabellenanalyse
542
11.3.5 Monitor zur Puffersynchronisation (DDLOG-Einträge)
545
11.3.6 Teure SQL-Anweisungen durch falsche Pufferung
546
11.4 Objektorientierte Anwendungspuffer überwachen
548
11.5 Zusammenfassung
553
11.6 Übungsfragen
555
12 Optimierung von Datenbankanfragen mit SAP HANA
557
12.1 Grundlagen der Hauptspeicherdatenbank SAP HANA
559
12.1.1 Spaltenorientierte Datenspeicherung
561
12.1.2 Datenkomprimierung
562
12.1.3 Datenhaltung im Hauptspeicher
566
12.1.4 Indizierung
569
12.1.5 Textsuche und Kategorisierung
572
12.2 Architektur von SAP HANA im Überblick
573
12.3 SAP-HANA-Administrationswerkzeuge zur Performanceoptimierung
576
12.4 Code Pushdown
582
12.4.1 Tabellen- und Indexdesign
583
12.4.2 ABAP SQL
585
12.4.3 Core Data Services
587
12.4.4 Allgemeine Regeln für performante CDS-Views und SQL-Anweisungen
594
12.4.5 Konkrete Optimierungsbeispiele
599
12.4.6 Design von schreibenden Anwendungen
611
12.5 Analyse teurer SQL-Anweisungen
612
12.5.1 Ausführungsplan auswerten
614
12.5.2 Ausführungs-Trace erstellen und auswerten
619
12.6 SQL Plan Cache und Result Cache
625
12.6.1 SQL Plan Cache analysieren
625
12.6.2 Result Cache (Cached Views)
627
12.7 Management von Tabellen auf SAP HANA
639
12.7.1 Tabellengröße, Lade- und Entladevorgänge überwachen
640
12.7.2 Deltafragmente überwachen
646
12.7.3 Partitionierung und Skalierung
651
12.7.4 Datenreduktion durch Löschen oder Auslagern
657
12.7.5 Replikation
664
12.8 Zusammenfassung
666
12.9 Übungsfragen
670
13 Optimierung analytischer Anfragen
673
13.1 Grundlagenwissen zu analytischen Anfragen
674
13.1.1 Übersicht über die wichtigsten Begriffe
675
13.1.2 Das Star-Schema
677
13.1.3 Analytische Anfragen
681
13.2 Architektur von SAP S/4HANA Embedded Analytics und von SAP BW/4HANA
683
13.2.1 SAP S/4HANA Embedded Analytics
683
13.2.2 SAP BW/HANA
687
13.2.3 Datenmodellierung aus Performancesicht
691
13.2.4 Datenladeprozesse
692
13.3 Analyse teurer analytischer Anfragen
695
13.3.1 Teure Anfragen identifizieren
695
13.3.2 BW-Statistiken im Workload-Monitor
697
13.3.3 Testumgebung für analytische Anfragen (Query-Monitor)
698
13.4 Optimierung teurer analytischer Anfragen
703
13.4.1 Einstellungen analytischer Anfragen optimieren
705
13.4.2 OLAP-Cache überwachen
709
13.4.3 Data Tiering
714
13.5 Zusammenfassung
716
13.6 Übungsfragen
717
Anhang
719
A Wichtige Transaktionscodes und Anwendungen
721
B Fragen und Antworten
727
C Glossar
733
D Informationsquellen
743
Der Autor
761
Index
763