Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Vorwort und Danksagung
17
Einleitung
19
Proaktives Performancemanagement
19
Aktuelle Entwicklungen
22
Zu diesem Buch
25
1 Performancemanagement einer SAP-Lösung
33
1.1 Die Architektur von SAP-Lösungen
33
1.1.1 SAP-Lösungen und -Komponenten
34
1.1.2 SAP-HANA-Einsatzszenarien
37
1.1.3 Client-Server-Architektur
41
1.2 Das Überwachungs- und Optimierungskonzept für eine SAP-Lösung
49
1.2.1 Anforderungen an ein Überwachungs- und Optimierungskonzept
50
1.2.2 Service Level Management
53
1.2.3 Das Konzept für eine kontinuierliche Performanceoptimierung
60
1.2.4 Werkzeuge und Methoden für das Überwachungs- und Optimierungskonzept
66
1.2.5 SAP Solution Manager
69
1.3 Zusammenfassung
72
2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver
75
2.1 Begriffsklärungen
76
2.2 Hardwareanalyse
77
2.2.1 Analyse eines Hardwareengpasses (CPU und Hauptspeicher)
79
2.2.2 Identifizierung von Schreib-/Lese-(I/O-)Problemen
85
2.2.3 Parameteränderungen und Netzwerkcheck
86
2.3 Datenbankanalyse
89
2.3.1 Der Performancemonitor im DBA-Cockpit
90
2.3.2 Analyse des Datenbankhauptspeichers
91
2.3.3 Identifizierung teurer SQL-Anweisungen
93
2.3.4 Identifizierung von Schreib-/Lese-(I/O-)Problemen
100
2.3.5 Weitere Analysen auf Datenbankebene
101
2.4 Analyse der SAP-Speicherkonfiguration
110
2.4.1 Analyse der SAP-Puffer
111
2.4.2 Analyse des SAP Extended Memorys, des SAP Heap Memorys und des SAP Roll Memorys
113
2.4.3 Anzeige des allokierten Speichers
115
2.4.4 Weitere Monitore zur detaillierten Analyse
117
2.5 Analyse der SAP-Workprozesse
119
2.5.1 Felder der Workprozess-Übersicht
119
2.5.2 Analyse der Workprozesse
122
2.5.3 Überwachung der Dispatcher-Queue
126
2.6 Analyse des Internet Communication Managers (ICM)
128
2.7 Zusammenfassung
129
2.8 Übungsfragen
129
3 Workload-Analyse
131
3.1 Grundlagen der Workload-Analyse und der Laufzeitanalyse
132
3.2 Der Workload-Monitor
134
3.2.1 Mit dem Workload-Monitor arbeiten
135
3.2.2 Technische Einstellungen zum Workload-Monitor
138
3.3 Workload-Analyse
138
3.3.1 Ablauf eines Transaktionsschrittes
138
3.3.2 Weitere Zeitkomponenten
141
3.3.3 Interpretation der Antwortzeiten
143
3.3.4 Aktivität, Durchsatz und Last
145
3.4 Workload-Analyse durchführen
147
3.4.1 Allgemeines Performanceproblem analysieren
147
3.4.2 Spezielles Performanceproblem analysieren
154
3.5 Einzelsatzstatistik
157
3.6 End-to-End-Workload-Analyse
162
3.6.1 Grundlagen der End-to-End-Workload-Analyse
162
3.6.2 Der zentrale Workload-Monitor
164
3.6.3 End-to-End-Workload-Monitor und End-to-End-Laufzeitanalyse im SAP Solution Manager
168
3.6.4 Zentrale Einzelsatzstatistik
168
3.6.5 End-to-End-Laufzeitanalyse mit dem Solution Manager
172
3.7 Zusammenfassung
175
3.8 Übungsfragen
178
4 Hardware-Sizing und Komponentenverteilung
181
4.1 Initiales Hardware-Sizing
182
4.1.1 Übersicht über das Projekt zum initialen Sizing
183
4.1.2 Sizing-Methoden
188
4.1.3 Sizing-Projekt im Detail durchführen
193
4.1.4 SAP Standard Application Benchmarks
196
4.2 Sizing bei Laststeigerung, Versionswechsel oder Migration
202
4.2.1 Übersicht über ein Sizing-Projekt im Umfeld einer bereits produktiven Installation
202
4.2.2 Sizing im Umfeld produktiver Installationen im Detail durchführen
203
4.2.3 SAP-HANA-Migration
210
4.3 Systemlandschaft planen
212
4.3.1 Virtualisierung und Hardwarekonsolidierung
214
4.3.2 Skalierung der Datenbankebene, insbesondere von SAP HANA
216
4.3.3 Verteilung von SAP-Applikationsinstanzen
219
4.4 Zusammenfassung
220
4.5 Übungsfragen
221
5 Optimierung von ABAP-Programmen
223
5.1 Performance-Trace
223
5.1.1 Performance-Trace erstellen
224
5.1.2 SQL-Trace auswerten
225
5.1.3 Weitere Funktionen im SQL-Trace
230
5.1.4 Puffer-Trace auswerten
232
5.1.5 RFC-Trace auswerten
233
5.1.6 HTTP-Trace auswerten
234
5.1.7 Enqueue-Trace auswerten
235
5.2 Performanceanalyse mit dem ABAP-Trace (Laufzeitanalyse)
236
5.2.1 ABAP-Trace erstellen
237
5.2.2 ABAP-Trace auswerten
239
5.2.3 Varianten verwenden
241
5.2.4 Zeitachsensicht verwenden
243
5.3 Analyse des Speicherverbrauchs mit dem ABAP Debugger und im Memory Inspector
244
5.4 Code Inspector
247
5.5 Tipps und Tricks für performante ABAP-Programme
250
5.6 Zusammenfassung
256
5.7 Übungsfragen
257
6 Speicherkonfiguration
259
6.1 Grundlagen der Speicherkonfiguration
259
6.1.1 Begriffsklärungen
259
6.1.2 Speicherbereiche der SAP-Instanz
261
6.1.3 Zero Administration Memory Management
264
6.1.4 Technische Realisierung im Detail
264
6.1.5 Zusammenfassung
274
6.2 Speicherbereiche konfigurieren und überwachen
275
6.2.1 Auslagerungsspeicher überwachen
276
6.2.2 SAP-Speicherbereiche konfigurieren und überwachen
277
6.2.3 Hilfe zur Fehlerbehebung
281
6.3 Zusammenfassung
288
6.4 Übungsfragen
290
7 Lastverteilung, Remote Function Calls und SAP GUI
291
7.1 Services des SAP NetWeaver Application Servers
292
7.2 Lastverteilung innerhalb der ABAP-Instanzen
295
7.2.1 Message- und Enqueue- Service verteilen
296
7.2.2 Dialog-, Hintergrund- und Spool-Workprozesse verteilen
297
7.2.3 Benutzer und Workprozesse auf CPU-Ressourcen verteilen
298
7.2.4 Dynamische Benutzerverteilung: Anmeldegruppen konfigurieren
301
7.2.5 Lastverteilungskonzept für Dialog-Workprozesse
304
7.2.6 Ressourcen pro Benutzer beschränken
307
7.2.7 Betriebsarten
308
7.2.8 Dynamische Workprozesse konfigurieren
308
7.2.9 Hintergrundverarbeitung
309
7.2.10 Verbuchung
310
7.3 Remote Function Calls (RFCs)
317
7.3.1 Grundlagen und Begriffe
317
7.3.2 Ablauf eines RFCs
321
7.3.3 RFC-Verbindungen konfigurieren und testen
323
7.3.4 Serialisierung auswählen
327
7.3.5 Eingehende und ausgehende Last überwachen
328
7.3.6 Parallelisierung von Prozessen mit asynchronen RFCs konfigurieren
333
7.3.7 Datenübertragung mit transaktionalen RFCs überwachen
334
7.3.8 Hintergrund-RFCs
336
7.4 SAP GUI
336
7.4.1 Interaktionsmodell und Performancemessung
337
7.4.2 Performance der GUI-Kommunikation analysieren und optimieren
339
7.5 Zusammenfassung
344
7.6 Übungsfragen
347
8 Internetanbindung und SAP Fiori
349
8.1 SAP-Webanwendungen
350
8.2 Analysen auf dem Präsentationsserver
354
8.2.1 Performancewerkzeuge der Internetbrowser
356
8.2.2 SAP-Statistiken in der HTTP-Anfrage
358
8.2.3 Webanwendungen kontinuierlich überwachen
360
8.3 Pufferung von Webdokumenten
362
8.3.1 Browserpuffer (Browsercache)
362
8.3.2 Puffer im ICM und im SAP Web Dispatcher
365
8.3.3 Content Delivery Network
366
8.3.4 Zusammenfassung: Nutzung von Puffern in Webanwendungen
367
8.4 Performanceanalyse von Webanwendungen auf dem SAP NetWeaver Application Server ABAP
368
8.4.1 HTTP-Trace im Internet Communication Manager
369
8.4.2 Performanceanalyse von ABAP-Webanwendungen durchführen
370
8.4.3 Aufrufe von Webservices überwachen
372
8.5 Business Server Pages (BSP), Web Dynpro ABAP und integrierter ITS
373
8.5.1 Business Server Pages und Web Dynpro ABAP
373
8.5.2 Integrierter ITS
377
8.6 SAP Fiori, SAPUI5 und OData-Services
378
8.6.1 Grundlagen von Fiori, SAPUI5 und OData
378
8.6.2 Aufbau einer Fiori-Systemlandschaft
380
8.6.3 Allgemeine Performancegesichtspunkte von SAP Fiori, SAPUI5 und OData
383
8.6.4 SAP Fiori, SAPUI5 und OData auf dem SAP NetWeaver Application Server ABAP
386
8.7 Zusammenfassung
393
8.8 Übungsfragen
395
9 Optimierung von Java-Programmen
397
9.1 Garbage Collection
399
9.1.1 Aufbau des Java Heaps
399
9.1.2 Garbage-Collection-Algorithmen
401
9.1.3 Auswahl des Kollektors
402
9.1.4 Parametrisierung des Java Heaps und der Garbage Collection
403
9.1.5 Protokollierung von Garbage Collections
405
9.2 Just-in-time-Compiler
405
9.3 SAP Management Console
407
9.4 SAP Java Virtual Machine Profiler
409
9.4.1 Architektur
409
9.4.2 Verbindungsaufbau
410
9.4.3 Allocation Analysis
413
9.4.4 Performance Hotspot Analysis
419
9.4.5 Method Parameter Analysis
423
9.4.6 Synchronization Analysis
425
9.4.7 File- und Network-I/O-Analysis
428
9.4.8 Garbage Collection Analysis
430
9.4.9 Klassenstatistik und Heap Dump
432
9.5 Memory Analyzer
435
9.5.1 HPROF-Dateien erstellen
435
9.5.2 Analyse des Java Heaps mit dem Memory Analyzer
435
9.6 Weitere Werkzeige zur Performanceanalyse auf dem SAP NetWeaver AS Java
438
9.7 Zusammenfassung
439
9.8 Übungsfragen
441
10 Sperren
443
10.1 Sperrkonzepte von Datenbanksystem und SAP-System
444
10.1.1 Datenbanksperren
444
10.1.2 SAP-Enqueues
445
10.1.3 Lesekonsistenz
447
10.2 Überwachung von Sperren
449
10.2.1 Datenbanksperren
449
10.2.2 SAP-Enqueues
454
10.2.3 Lesekonsistenz
457
10.3 Nummernkreispufferung
458
10.3.1 Grundlagen
458
10.3.2 Nummernkreispufferung einschalten
462
10.3.3 Nummernkreispufferung überwachen
463
10.4 Sperren mit Menge und ATP-Server
465
10.4.1 Grundlagen
466
10.4.2 ATP-Server konfigurieren
467
10.4.3 ATP-Server überwachen
470
10.5 Zusammenfassung
471
10.6 Übungsfragen
471
11 Optimierung von SQL-Anweisungen
473
11.1 Teure SQL-Anweisungen identifizieren und analysieren
475
11.1.1 Identifizierung und Voranalyse
475
11.1.2 Detaillierte Analyse
477
11.2 SQL-Anweisungen im Programm optimieren
481
11.2.1 Die fünf goldenen Regeln der performanten SQL-Programmierung
482
11.2.2 Beispiel für die Optimierung eines ABAP-Programms
488
11.2.3 Vorbelegung von Feldern in Reporttransaktionen
497
11.3 SQL-Anweisungen durch Sekundärindizes optimieren
502
11.3.1 Ein wenig Theorie
502
11.3.2 Indizes und Tabellenstatistiken administrieren
512
11.3.3 Regeln zum Anlegen oder Ändern von Sekundärindizes
518
11.4 Zusammenfassung
527
11.5 Übungsfragen
529
12 SAP-Pufferung
531
12.1 Grundlagen der Tabellenpufferung
533
12.1.1 Pufferungsarten
533
12.1.2 Pufferzugriffe
536
12.1.3 Puffersynchronisation
538
12.1.4 Pufferung einschalten
541
12.1.5 Welche Tabellen sollen gepuffert werden?
543
12.2 Tabellenpufferung auf dem ABAP-Server überwachen
545
12.2.1 Tabellenzugriffsstatistik
546
12.2.2 Analyse der gepufferten Tabellen
550
12.2.3 Analyse der bisher nicht gepufferten Tabellen
554
12.2.4 Detaillierte Tabellenanalyse
556
12.2.5 Monitor zur Puffersynchronisation (DDLOG-Einträge)
559
12.2.6 Teure SQL-Anweisungen durch falsche Pufferung
560
12.3 Objektorientierte Anwendungspuffer überwachen
562
12.4 Zusammenfassung
568
12.5 Übungsfragen
569
13 Optimierung von Datenbankanfragen mit SAP HANA
571
13.1 Grundlagen der Hauptspeicherdatenbank SAP HANA
573
13.1.1 Spaltenorientierte Datenspeicherung
574
13.1.2 Datenkomprimierung
576
13.1.3 Datenhaltung im Hauptspeicher
580
13.1.4 Indizierung
582
13.1.5 Textsuche und Kategorisierung
585
13.2 SAP-HANA-Architekturüberblick
586
13.3 Datenmodellierung aus Performancesicht
589
13.3.1 Tabellen- und Indexdesign
589
13.3.2 Design von Datenbanksichten und SELECT-Anweisungen
591
13.3.3 Design von schreibenden Anwendungen
601
13.4 SAP-HANA-Administrationswerkzeuge zur Performanceoptimierung
602
13.4.1 Hauptspeicher- und CPU-Ressourcen analysieren
606
13.4.2 Identifizierung teurer SQL-Anweisungen
613
13.4.3 Analyse teurer SQL-Anweisungen: Ausführungsplan und Planvisualisierung
622
13.5 Technische Optimierungsoptionen im Detail
637
13.5.1 Tabellengröße, Lade- und Entladevorgänge überwachen
640
13.5.2 Deltaindizes überwachen
646
13.5.3 Indizes anlegen
651
13.5.4 SAP HANA Cached Views
654
13.5.5 Partitionierung und Skalierung
661
13.5.6 Datenreduktion durch Löschen oder Auslagern
666
13.5.7 Replikation
675
13.6 Zusammenfassung
677
13.7 Übungsfragen
679
14 Optimierung von Anfragen an SAP Business Warehouse
681
14.1 Grundlagen des SAP Business Warehouse
682
14.1.1 Übersicht über die wichtigsten Begriffe in SAP BW
683
14.1.2 InfoCube und erweitertes Star-Schema
687
14.1.3 DataStore-Objekte
698
14.1.4 Datenmodellierung aus Performancesicht
701
14.1.5 Ablauf einer Query-Ausführung
704
14.2 BW-Administrationswerkzeuge zur Performanceoptimierung
706
14.2.1 Analyse teurer BW-Anfragen
707
14.2.2 BW-Statistiken im Workload-Monitor
711
14.3 Technische Optimierungsoptionen im Detail
714
14.3.1 Indizierung und Datenbankstatistiken administrieren
717
14.3.2 Einstellungen zur Datenselektion
723
14.3.3 Komprimieren der Faktentabelle
725
14.3.4 OLAP-Cache überwachen
726
14.3.5 Optimieren von Reports
731
14.3.6 Aggregate
732
14.4 Zusammenfassung
741
14.5 Übungsfragen
743
Anhang
745
A Datenbankmonitore
747
A.1 SAP MaxDB
751
A.2 SAP Adaptive Server Enterprise (ASE)
761
A.3 IBM DB2 für Linux, UNIX und Windows
767
A.4 IBM DB2 für IBM i
775
A.5 IBM DB2 für z/OS
786
A.6 Oracle
792
A.7 Microsoft SQL Server
801
B Wichtige Transaktionscodes
807
C Fragen und Antworten
811
C.1 Fragen zu Kapitel 2, »Analyse von Hardware, Datenbank und ABAP-Applikationsserver«
811
C.2 Fragen zu Kapitel 3, »Workload-Analyse«
811
C.3 Fragen zu Kapitel 4, »Hardware-Sizing und Komponentenverteilung«
812
C.4 Fragen zu Kapitel 5, »Optimierung von ABAP-Programmen«
812
C.5 Fragen zu Kapitel 6, »Speicherkonfiguration«
812
C.6 Fragen zu Kapitel 7, »Lastverteilung, Remote Function Calls und SAP GUI«
813
C.7 Fragen zu Kapitel 8, »Internetanbindung und SAP Fiori«
813
C.8 Fragen zu Kapitel 9, »Optimierung von Java-Programmen«
813
C.9 Fragen zu Kapitel 10, »Sperren«
814
C.10 Fragen zu Kapitel 11, »Optimierung von SQL-Anweisungen«
814
C.11 Fragen zu Kapitel 12, »SAP-Pufferung«
815
C.12 Fragen zu Kapitel 13, »Optimierung von Datenbankanfragen mit SAP HANA«
815
C.13 Fragen zu Kapitel 14, »Optimierung von Anfragen an SAP Business Warehouse«
815
D Glossar
817
E Informationsquellen
829
F Der Autor
849
Index
851