sap -performanceoptimierung · 9.4.3 atp-server überwachen ..... 426 9.5 zusammenfassung ..... 427...

74
Bonn Boston Thomas Schneider SAP ® -Performanceoptimierung Analyse und Tuning von SAP-Systemen

Upload: phungdien

Post on 28-Apr-2018

227 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

Bonn � Boston

Thomas Schneider

SAP®-PerformanceoptimierungAnalyse und Tuning von SAP-Systemen

2177.book Seite 3 Montag, 10. Juni 2013 11:30 11

Page 2: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

Auf einen Blick

1 Performancemanagement einer SAP-Lösung ........... 33

2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver ........................................ 75

3 Workload-Analyse .................................................. 149

4 Identifizierung von Performanceproblemen in ABAP-Programmen ............................................. 189

5 Hardware-Sizing, System- und Lastverteilung .......... 239

6 Speicherkonfiguration ............................................. 281

7 Lastverteilung und Remote Function Calls ............... 317

8 SAP GUI und Internetanbindung ............................. 367

9 Sperren ................................................................... 403

10 Optimierung der Java Virtual Machine und von Java-Programmen ............................................. 431

11 Optimierung von SQL-Anweisungen ....................... 485

12 SAP-Pufferung ........................................................ 549

13 Optimierung von Anfragen an SAP NetWeaver Business Warehouse ............................................... 593

14 Optimierung von Suchanfragen mit TREX ................ 651

15 Optimierung von Datenbankanfragen mit SAP HANA ........................................................ 695

2177.book Seite 5 Montag, 10. Juni 2013 11:30 11

Page 3: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

Inhalt

7

Inhalt

Vorwort und Danksagung ............................................................. 17Einleitung ..................................................................................... 19

1 Performancemanagement einer SAP-Lösung .......... 33

1.1 Die Architektur von SAP-Lösungen ............................. 341.1.1 SAP-Lösungen und -Komponenten ................ 341.1.2 Client-Server-Architektur ............................... 38

1.2 Das Überwachungs- und Optimierungskonzept für eine SAP-Lösung ................................................... 471.2.1 Anforderungen an ein Überwachungs-

und Optimierungskonzept .............................. 471.2.2 Service Level Management ............................. 511.2.3 Das Konzept für eine kontinuierliche

Performanceoptimierung ................................ 581.2.4 Werkzeuge und Methoden für das

Überwachungs- und Optimierungskonzept ..... 651.2.5 SAP Solution Manager ................................... 67

1.3 Zusammenfassung ...................................................... 72

2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver ......................................... 75

2.1 Begriffsklärungen ........................................................ 762.2 Hardwareanalyse ........................................................ 77

2.2.1 Analyse eines Hardwareengpasses(CPU und Hauptspeicher) ............................... 79

2.2.2 Identifizierung von Schreib-/Lese-(I/O-)Problemen ...................... 86

2.2.3 Weitere Analysen auf Betriebssystemebene .... 872.3 Datenbankanalyse ...................................................... 89

2.3.1 Der Performancemonitor im DBA-Cockpit ...... 902.3.2 Analyse der Datenbankpuffer ......................... 922.3.3 Identifizierung teurer SQL-Anweisungen ........ 962.3.4 Identifizierung von

Schreib-/Lese-(I/O-)Problemen ...................... 1032.3.5 Weitere Analysen auf Datenbankebene .......... 105

2.4 Analyse der SAP-Speicherkonfiguration ...................... 1142.4.1 Analyse der SAP-Puffer .................................. 115

2177.book Seite 7 Montag, 10. Juni 2013 11:30 11

Page 4: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

Inhalt

8

2.4.2 Analyse des SAP Extended Memorys, des SAP Heap Memorys und des SAP Roll Memorys ......................................... 117

2.4.3 Anzeige des allokierten Speichers .................. 1192.4.4 Weitere Monitore zur detaillierten Analyse ... 121

2.5 Analyse der SAP-Workprozesse .................................. 1232.5.1 Felder der Workprozess-Übersicht ................. 1242.5.2 Analyse der Workprozesse ............................. 1272.5.3 Globale Workprozess-Übersicht ..................... 1302.5.4 Überwachung der Dispatcher-Queue ............. 132

2.6 Analyse des Internet Communication Managers (ICM) ......................................................... 134

2.7 Kontinuierliche Überwachung mit dem CCMS ............ 1352.7.1 Mit dem Überwachungsmonitor arbeiten ...... 1372.7.2 Monitoring-Baum einrichten ......................... 1412.7.3 Automatische Alert-Benachrichtigung

einrichten ...................................................... 1442.7.4 Grafische Benutzeroberfläche im

SAP Solution Manager ................................... 1452.8 Zusammenfassung ...................................................... 146

3 Workload-Analyse .................................................... 149

3.1 Grundlagen der Workload-Analyse und der Laufzeitanalyse ........................................................... 150

3.2 Der Workload-Monitor .............................................. 1533.2.1 Mit dem Workload-Monitor arbeiten ............ 1533.2.2 Technische Einstellungen zum

Workload-Monitor ........................................ 1563.3 Workload-Analyse ..................................................... 157

3.3.1 Ablauf eines Transaktionsschrittes ................. 1573.3.2 Weitere Zeitkomponenten ............................ 1603.3.3 Interpretation der Antwortzeiten ................... 1613.3.4 Aktivität, Durchsatz und Last ......................... 163

3.4 Workload-Analyse durchführen .................................. 1653.4.1 Allgemeines Performanceproblem

analysieren .................................................... 1653.4.2 Spezielles Performanceproblem analysieren ... 173

3.5 End-to-End-Workload-Analyse .................................. 1763.5.1 Grundlagen der End-to-End-Workload-

Analyse ......................................................... 1773.5.2 Der zentrale Workload-Monitor .................... 178

2177.book Seite 8 Montag, 10. Juni 2013 11:30 11

Page 5: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

Inhalt

9

3.5.3 Mit dem zentralen Workload-Monitor arbeiten ......................................................... 179

3.5.4 Der End-to-End-Workload-Monitor im SAP Solution Manager ............................... 183

3.6 Zusammenfassung ...................................................... 184

4 Identifizierung von Performanceproblemen in ABAP-Programmen .................................................. 189

4.1 Einzelsatzstatistik ........................................................ 1894.2 Performance-Trace ...................................................... 194

4.2.1 Performance-Trace erstellen ........................... 1954.2.2 SQL-Trace auswerten ..................................... 1964.2.3 Weitere Funktionen im SQL-Trace ................. 2024.2.4 Puffer-Trace auswerten .................................. 2044.2.5 RFC-Trace auswerten ..................................... 2054.2.6 HTTP-Trace auswerten ................................... 2064.2.7 Enqueue-Trace auswerten .............................. 207

4.3 Performanceanalyse mit dem ABAP-Trace (Laufzeitanalyse) ......................................................... 2084.3.1 ABAP-Trace erstellen ..................................... 2094.3.2 ABAP-Trace auswerten ................................... 2114.3.3 Varianten verwenden ..................................... 2134.3.4 Ausblick: Einzeltransaktionsanalyse ................ 2154.3.5 Mit der Einzeltransaktionsanalyse arbeiten ..... 217

4.4 Analyse des Speicherverbrauchs mit dem ABAP Debugger und im Memory Inspector .......................... 218

4.5 Code Inspector ........................................................... 2254.6 Zentrale Einzelsatzstatistik .......................................... 2264.7 End-to-End-Laufzeitanalyse im

SAP Solution Manager ................................................ 2294.7.1 Laufzeitanalyse einschalten ............................ 2294.7.2 End-to-End-Laufzeitanalyse im

SAP Solution Manager anzeigen ..................... 2324.8 Zusammenfassung ...................................................... 234

5 Hardware-Sizing, System- und Lastverteilung ........ 239

5.1 Initiales Hardware-Sizing ............................................ 2415.1.1 Übersicht über das Projekt zum

initialen Sizing ................................................ 2425.1.2 Sizing-Projekt im Detail durchführen .............. 249

2177.book Seite 9 Montag, 10. Juni 2013 11:30 11

Page 6: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

Inhalt

10

5.1.3 SAP Standard Application Benchmarks .......... 2535.2 Sizing bei Laststeigerung, Versionswechsel

oder Migration ........................................................... 2585.2.1 Übersicht über ein Sizing-Projekt im Umfeld

einer bereits produktiven Installation ............ 2585.2.2 Sizing im Umfeld produktiver Installationen

im Detail durchführen ................................... 2595.3 Systemlandschaft planen ............................................ 267

5.3.1 Verteilung von SAP-Applikationsinstanzen .... 2685.3.2 Hardwarekonsolidierung ................................ 2695.3.3 System- und Datenbankkonsolidierung .......... 271

5.4 Services des SAP NetWeaver Application Servers ....... 2735.5 Zusammenfassung ...................................................... 278

6 Speicherkonfiguration .............................................. 281

6.1 Grundlagen der Speicherkonfiguration ....................... 2826.1.1 Begriffsklärungen ........................................... 2826.1.2 SAP Role Memory, SAP Extended Memory,

SAP Heap Memory ........................................ 2846.1.3 SAP Extended Global Memory und

SAP Paging Memory ...................................... 2916.2 Besonderheiten der Betriebssysteme .......................... 293

6.2.1 Zero Administration Memory Management für Microsoft Windows .................................. 293

6.2.2 Memory Management für Linux .................... 2956.2.3 Memory Management für IBM i .................... 295

6.3 Speicherbereiche konfigurieren und überwachen ....... 2966.3.1 Auslagerungsspeicher überwachen ................ 2996.3.2 SAP-Speicherbereiche konfigurieren und

überwachen .................................................. 3016.3.3 Hilfe zur Fehlerbehebung .............................. 305

6.4 Zusammenfassung ...................................................... 312

7 Lastverteilung und Remote Function Calls .............. 317

7.1 Lastverteilung innerhalb der ABAP-Instanzen ............. 3187.1.1 Message-, Enqueue- und ATP-Service

verteilen ........................................................ 3207.1.2 Dialog-, Hintergrund- und Spool-

Workprozesse verteilen ................................. 320

2177.book Seite 10 Montag, 10. Juni 2013 11:30 11

Page 7: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

Inhalt

11

7.1.3 Benutzer und Workprozesse auf CPU-Ressourcen verteilen .............................. 321

7.1.4 Dynamische Benutzerverteilung: Anmeldegruppen konfigurieren ...................... 324

7.1.5 Ressourcen pro Benutzer beschränken ........... 3287.1.6 Betriebsarten ................................................. 3297.1.7 Dynamische Workprozesse konfigurieren ....... 3297.1.8 Verbuchung ................................................... 330

7.2 Remote Function Calls (RFC) ....................................... 3387.2.1 Grundlagen und Begriffe ................................ 3387.2.2 Ablauf eines RFCs .......................................... 3417.2.3 RFC-Verbindungen konfigurieren

und testen ..................................................... 3447.2.4 Eingehende und ausgehende Last

überwachen ................................................... 3487.2.5 Parallelisierung von Prozessen mit

asynchronen RFCs konfigurieren ..................... 3547.2.6 Datenübertragung mit transaktionalen

RFCs überwachen ........................................... 3557.2.7 Hintergrund-RFCs .......................................... 357

7.3 Neues Lastverteilungskonzept ..................................... 3577.4 SAP Virtual Machine Container ................................... 3607.5 Zusammenfassung ...................................................... 362

8 SAP GUI und Internetanbindung ............................. 367

8.1 SAP GUI ..................................................................... 3688.1.1 Interaktionsmodell und Performance-

messung ......................................................... 3688.1.2 Performance der GUI-Kommunikation

analysieren und optimieren ............................ 3718.2 SAP-Webanwendungen .............................................. 377

8.2.1 Einsatz von Web UI und SAP GUI planen ....... 3788.2.2 HTTP-Trace im Internet Communication

Manager ........................................................ 3808.3 Analysen auf dem Präsentationsserver ........................ 381

8.3.1 Präsentationsserver-Trace für Webanwendung ............................................. 383

8.3.2 Performancewerkzeuge des Betriebssystems ... 3868.3.3 Webanwendungen kontinuierlich

überwachen ................................................... 387

2177.book Seite 11 Montag, 10. Juni 2013 11:30 11

Page 8: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

Inhalt

12

8.4 Business Server Pages (BSP), Web Dynpro ABAP und integrierter ITS .................................................... 3888.4.1 Grundlagen von Business Server Pages

und Web Dynpro ABAP ................................. 3888.4.2 Grundlagen des integrierten ITS .................... 3928.4.3 Grundlagen von ABAP-Webservices .............. 3948.4.4 Performanceanalyse von ABAP-

Webservices, BSPs, Web-Dynpro-ABAP- und ITS-Anwendungen durchführen .............. 394

8.4.5 Aufrufe von Webservices überwachen ........... 3978.5 Zusammenfassung ...................................................... 398

9 Sperren ..................................................................... 403

9.1 Sperrkonzepte von Datenbanksystem und SAP-System ............................................................... 4049.1.1 Datenbanksperren ......................................... 4049.1.2 SAP-Enqueues ............................................... 405

9.2 Überwachung von Sperren ......................................... 4079.2.1 Datenbanksperren ......................................... 4089.2.2 SAP-Enqueues ............................................... 412

9.3 Nummernkreispufferung ............................................ 4149.3.1 Grundlagen ................................................... 4149.3.2 Nummernkreispufferung einschalten ............. 4199.3.3 Nummernkreispufferung überwachen ............ 420

9.4 Sperren mit Menge und ATP-Server ........................... 4219.4.1 Grundlagen ................................................... 4229.4.2 ATP-Server konfigurieren ............................... 4249.4.3 ATP-Server überwachen ................................ 426

9.5 Zusammenfassung ...................................................... 427

10 Optimierung der Java Virtual Machine und von Java-Programmen .............................................. 431

10.1 Garbage Collection .................................................... 43310.1.1 Aufbau des Java Heaps .................................. 43310.1.2 Garbage-Collection-Algorithmen ................... 43510.1.3 Auswahl des Kollektors ................................. 43610.1.4 Parametrisierung des Java Heaps und

der Garbage Collection .................................. 43810.1.5 Protokollierung von Garbage Collections ....... 439

10.2 Just-in-Time-Compiler ............................................... 440

2177.book Seite 12 Montag, 10. Juni 2013 11:30 11

Page 9: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

Inhalt

13

10.3 SAP Management Console .......................................... 44110.4 SAP Java Virtual Machine Profiler ............................... 444

10.4.1 Architektur ..................................................... 44410.4.2 Verbindungsaufbau ........................................ 44510.4.3 Allocation Analysis ......................................... 44810.4.4 Performance Hotspot Analysis ........................ 45510.4.5 Method Parameter Analysis ........................... 45910.4.6 Synchronization Analysis ................................ 46110.4.7 File- und Network-I/O-Analysis ...................... 46410.4.8 Garbage Collection Analysis ........................... 46610.4.9 Klassenstatistik und Heap Dump .................... 469

10.5 Memory Analyzer ....................................................... 47110.5.1 HPROF-Dateien erstellen ............................... 47210.5.2 Analyse des Java Heaps mit dem

Memory Analyzer ........................................... 47210.6 Lokale Datenbankmonitore und SQL-Trace im

SAP NetWeaver AS Java ............................................. 47510.7 Java-Workload- und Laufzeitanalyse mit

CA Wily Introscope ..................................................... 47810.7.1 Funktionsweise von Introscope ...................... 47810.7.2 Mit dem WebView und der Workstation

von Introscope arbeiten ................................. 47910.7.3 Introscope Trace ............................................ 481

10.8 Zusammenfassung ...................................................... 482

11 Optimierung von SQL-Anweisungen ....................... 485

11.1 Teure SQL-Anweisungen identifizieren und analysieren ................................................................. 48711.1.1 Identifizierung und Voranalyse ....................... 48711.1.2 Detaillierte Analyse ........................................ 490

11.2 SQL-Anweisungen durch Sekundärindizes optimieren .................................................................. 49411.2.1 Ein wenig Theorie .......................................... 49411.2.2 Indizes und Tabellenstatistiken

administrieren ................................................ 50411.2.3 Regeln zum Anlegen oder Ändern

von Sekundärindizes ...................................... 51111.3 SQL-Anweisungen im ABAP-Programm optimieren .... 521

11.3.1 Regeln für die performante SQL-Programmierung ............................................ 521

2177.book Seite 13 Montag, 10. Juni 2013 11:30 11

Page 10: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

Inhalt

14

11.3.2 Beispiel für die Optimierung eines ABAP-Programms .......................................... 527

11.3.3 Vorbelegung von Feldern in Report-transaktionen ................................................ 537

11.4 Teure SQL-Anweisungen durch falsche Puffereinstellungen und Administrationswerkzeuge .... 542

11.5 Zusammenfassung ...................................................... 544

12 SAP-Pufferung .......................................................... 549

12.1 Grundlagen der Tabellenpufferung ............................. 55112.1.1 Pufferungsarten ............................................. 55112.1.2 Pufferzugriffe ................................................. 55412.1.3 Puffersynchronisation .................................... 55612.1.4 Pufferung einschalten .................................... 55912.1.5 Welche Tabellen sollen gepuffert werden? .... 561

12.2 Tabellenpufferung auf dem ABAP-Server überwachen ............................................................... 56412.2.1 Tabellenzugriffsstatistik ................................. 56512.2.2 Analyse der gepufferten Tabellen ................... 56812.2.3 Analyse der bisher nicht gepufferten

Tabellen ........................................................ 57412.2.4 Detaillierte Tabellenanalyse ........................... 57612.2.5 Monitor zur Puffersynchronisation

(DDLOG-Einträge) ......................................... 57912.2.6 SQL-Statistik und SQL-Trace .......................... 579

12.3 Objektorientierte Anwendungspuffer überwachen ..... 58012.4 Tabellenpufferung auf dem SAP NetWeaver

AS Java überwachen .................................................. 58612.5 Zusammenfassung ...................................................... 589

13 Optimierung von Anfragen an SAP NetWeaver Business Warehouse ................................................ 593

13.1 Grundlagen des SAP NetWeaver Business Warehouse ................................................................ 59413.1.1 Übersicht über die wichtigsten Begriffe

in SAP NetWeaver BW .................................. 59513.1.2 InfoCube und erweitertes Star-Schema .......... 599

2177.book Seite 14 Montag, 10. Juni 2013 11:30 11

Page 11: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

Inhalt

15

13.1.3 Möglichkeiten der Performance-optimierung im Überblick .............................. 608

13.1.4 BW-Administrationswerkzeuge im Überblick ....................................................... 611

13.2 Analyse teurer BW-Anfragen ....................................... 61313.3 Technische Optimierungsoptionen im Detail ............... 619

13.3.1 Indizierung administrieren .............................. 62113.3.2 Einstellungen zur Datenselektion ................... 62813.3.3 Komprimieren der Faktentabelle .................... 62913.3.4 OLAP-Cache überwachen ............................... 63013.3.5 Vorberechnung von Reports ........................... 63513.3.6 Aggregate ...................................................... 637

13.4 Zusammenfassung ...................................................... 647

14 Optimierung von Suchanfragen mit TREX ............... 651

14.1 Grundlagen und Architektur des TREX unter Performancegesichtspunkten ...................................... 65214.1.1 TREX-Einsatzszenarien und Suchfunktionen ... 65314.1.2 Architektur des TREX ..................................... 65714.1.3 Besonderheiten des SAP NetWeaver BW

Accelerators ................................................... 66114.1.4 TREX-Administrationswerkzeuge

im Überblick .................................................. 66314.2 Performanceanalyse auf dem TREX durchführen ......... 665

14.2.1 Auslastung der TREX-Server überwachen ....... 66514.2.2 Python-Trace erstellen und auswerten ............ 67114.2.3 Performance-Trace erstellen und auswerten ... 672

14.3 Technische Optimierungsoptionen im Detail ............... 67314.3.1 Indizes teilen ................................................. 67414.3.2 TREX reorganisieren ....................................... 67514.3.3 Deltaindizes einsetzen .................................... 67614.3.4 Master- und Slave-Index-Server verwenden ... 67814.3.5 Queue-Server konfigurieren ........................... 68214.3.6 RFC-Verbindungen vom ABAP-System

zum TREX erhöhen ......................................... 68714.4 InfoCubes im BWA indizieren ..................................... 68714.5 Zusammenfassung ...................................................... 693

2177.book Seite 15 Montag, 10. Juni 2013 11:30 11

Page 12: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

Inhalt

16

15 Optimierung von Datenbankanfragen mit SAP HANA .......................................................... 695

15.1 SAP HANA-Einsatzszenarien ...................................... 69715.2 Grundlagen der Hauptspeicherdaten in

SAP HANA und TREX ................................................. 70115.2.1 Spaltenorientierte Datenspeicherung ............. 70315.2.2 Datenkomprimierung .................................... 70515.2.3 Datenhaltung im Hauptspeicher .................... 70915.2.4 Partitionierung und Parallelisierung ............... 71215.2.5 Indizierung .................................................... 71315.2.6 Datenmodellierung aus Performancesicht ...... 716

15.3 SAP HANA-Architekturüberblick und Sizing ............... 71915.3.1 SAP HANA-Architekturüberblick ................... 71915.3.2 Sizing ............................................................ 72215.3.3 HANA-Administrationswerkzeuge

im Überblick .................................................. 72515.4 Technische Optimierungsoptionen im Detail .............. 728

15.4.1 Hauptspeicheranalyse .................................... 72815.4.2 Identifizierung und Analyse teurer

SQL-Anweisungen ......................................... 73615.4.3 Indizes anlegen (invertierter Index,

konkatenierter Index) .................................... 74515.4.4 Deltaindizes administrieren ........................... 74915.4.5 Lastverteilung, Parallelisierung und

Partitionierung .............................................. 75315.4.6 Optimierung von InfoCubes und

DataStore-Objekten für SAP HANA ............... 75615.5 Zusammenfassung ...................................................... 760

Anhang ........................................................................... 765

A Datenbankmonitore ............................................................. 767B Wichtige Transaktionscodes ................................................. 819C Fragen und Antworten ......................................................... 823D Glossar ................................................................................. 829E Informationsquellen ............................................................. 843F Der Autor ............................................................................. 858

Index .......................................................................................... 859

2177.book Seite 16 Montag, 10. Juni 2013 11:30 11

Page 13: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

19

Einleitung

PerformanceWarum ist die Performance Ihrer betriebswirtschaftlichen IT-Anwen-dung wichtig? Nur bei guten Antwortzeiten können Benutzer moti-viert und effizient mit der Anwendung arbeiten. Ein langsames Sys-tem führt zu Ausfallzeiten und Frustration. Eskaliert die Situation,wird im schlimmsten Fall der zur Bewältigung der Geschäftsprozesseerforderliche Durchsatz nicht mehr erreicht. Mehrarbeit, Produk-tionsverzögerungen und finanzielle Verluste sind die Folge. Umge-kehrt steigert eine systematische, proaktive Performanceoptimierungmaßgeblich den Nutzen Ihrer betriebswirtschaftlichen Anwendung.

Die Performance eines Datenverarbeitungssystems ist als die Fähig-keit definiert, gegebene Anforderungen an Antwortzeiten und Daten-durchsatz zu erfüllen. Solche Anforderungen können z. B. sein, dassinnerhalb einer Stunde ein Durchsatz von 10.000 gedruckten Rech-nungen erreicht werden muss oder dass die Antwortzeit für das Erfas-sen eines Kundenauftrags unter einer Sekunde liegen soll. Eine gutePerformance ist keine absolute Eigenschaft einer betriebswirtschaft-lichen Anwendung, sondern immer relativ zu den Anforderungen andiese zu sehen.

Proaktives Performancemanagement

Performance-optimierung

Unter Performanceoptimierung verstehen wir in diesem Buch einenProzess, der immer fünf Phasen umfasst: Die ersten beiden Phasensind, zu einem Verständnis der Geschäftsprozesse zu kommen sowiePerformanceziele festzulegen und zu quantifizieren. Diese Schrittebeziehen alle Beteiligten mit ein, d. h. Techniker und Anwendungs-fachleute. Nur auf der Basis dieser Voraussetzungen kann eine Opti-mierung erfolgreich sein. Die Phasen drei bis fünf umfassen dann diesystematische Überwachung, Identifizierung und Analyse von Proble-men, die Umsetzung von Optimierungsmaßnahmen und die erneuteAnalyse zur Verifizierung des Erfolgs der eingeleiteten Maßnahmen(siehe Abbildung 1). Vor unreflektiertem »Herumschrauben« an Kon-figurationsparametern und vergleichbaren »Tuningschnellschüssen«

2177.book Seite 19 Montag, 10. Juni 2013 11:30 11

Page 14: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

20

Einleitung

müssen wir warnen! Ziel dieses Buches ist es vielmehr, Ihnen dieMöglichkeiten zu eröffnen, Performanceprobleme zu identifizierenund zu analysieren, um diese dann gezielt beheben zu können.

TechnischeOptimierung

Eine betriebswirtschaftliche IT-Anwendung besteht, technisch gese-hen, aus zahlreichen Komponenten: aus logischen Komponenten,Prozessen wie Services, Threads oder Workprozessen und Speicher-bereichen wie Puffern und Benutzerkontexten sowie physischenKomponenten wie Prozessoren (CPU), Hauptspeicher (RAM), Fest-platten und Netzwerksegmenten. Diese Komponenten erlaubenjeweils einen maximalen Durchsatz und eine optimale Antwortzeit.Ist das Zusammenspiel der Komponenten nicht ideal abgestimmtoder wird die Leistungsgrenze einzelner Komponenten erreicht, ent-stehen Wartesituationen, die sich negativ auf Durchsatz und Ant-wortzeit auswirken. Die Identifizierung, Analyse und Lösung solcherProbleme durch das Abstimmen der Komponenten aufeinander unddie Verteilung der im System anfallenden Last sind die Aufgaben, diewir in diesem Buch als technische Optimierung bezeichnen.

Optimierung vonApplikationen

Der zweite wichtige Bereich der Performanceoptimierung ist die Ver-meidung unnötiger Last. Die Performance kann ebenso von ineffizi-enten Programmen oder dem ineffizienten Einsatz von Programmennegativ beeinflusst werden. Die Optimierung einzelner Programmebezeichnen wir als Applikationsoptimierung.

Ziel der Optimierung ist, zunächst die Systemeinstellung und dieApplikationen derart zu verbessern, dass auf der Basis der bereits vor-handenen Hardwareressourcen die gewünschte Performance erreicht

Abbildung 1 Performanceoptimierung in fünf Phasen

Verständnis der Geschäftsprozesse

Definition der Performanceziele

Überwachung und Analyse

Optimierung

Verifikation und Reporting der Ergebnisse

2177.book Seite 20 Montag, 10. Juni 2013 11:30 11

Page 15: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

21

Proaktives Performancemanagement

wird. Genügt dies nicht, müssen die Ressourcen entsprechend dengewonnenen Erkenntnissen erweitert werden.

Wie viel Tuningist nötig?

Wie viel Aufwand ist für Performanceanalyse und Tuning einer SAP-Lösung nötig? Die Antwort auf diese Frage hängt stark von der Sys-temgröße ab. Für eine kleine oder mittelgroße Installation ohne Modi-fikationen am SAP-Standard und ohne Eigenentwicklungen genügtin der Regel eine Performanceoptimierung kurz vor und kurz nachdem Produktivstart sowie nach größeren Veränderungen, z. B. durchUpgrades, Produktionsstarts neuer SAP-Lösungen, die Erhöhung derBenutzerzahl, größere Datenübernahmen oder Mandantentransporte.Darüber hinaus muss man natürlich nach Bedarf eingreifen, wennakute Performanceprobleme vorliegen. Das Tuningpotenzial unddamit auch der notwendige Analyse- und Optimierungsaufwandwachsen mit der Systemgröße an. Die Praxis zeigt, dass insbesonderekundeneigene Entwicklungen und Modifikationen am SAP-Standardzu Performanceengpässen führen. Ursache dafür sind meist unge-nügende Tests, aber auch Zeitdruck und mangelnde Erfahrung derEntwickler. Den Extremfall bildet eine ständig weiterentwickelteGroßinstallation mit vielen hundert Benutzern, komplizierten Pro-zessketten, einem Dutzend oder mehr Entwicklern (die oft verschie-denen Beratungsfirmen angehören und zu unterschiedlichen Zeitenund an unterschiedlichen Orten am System arbeiten) und einem aus-gelagerten Systemmanagement. In einer solchen Systemumgebung istes unumgänglich, dass eine kleine Gruppe von Administratoren undEntwicklern die Übersicht über das Gesamtsystem behält und die Per-formance nicht aus den Augen lässt.

Hilfe bei Performanceanalyse und Tuning bieten die Remote-Servicesder SAP. Namentlich sind dies der GoingLive Check, der Ihnen denProduktivstart Ihres Systems erleichtert, und der EarlyWatch Service,der Ihr produktives System überwacht und Ihnen weitere Optimie-rungen vorschlägt.

Proaktives Performance-management

Wie trägt ein proaktives Performancemanagement dazu bei, Ihr Ziel zuerreichen, eine betriebswirtschaftliche Anwendung erfolgreich zubetreiben? Wenn Sie dieses Ziel erreichen wollen, müssen Sie zweiEinflussfaktoren im Blick halten: die Zufriedenheit der Benutzer unddie Kosten für den Betrieb der betriebswirtschaftlichen Anwendung.Die Kosten für den Betrieb ergeben sich zum einen aus den Kostenfür Hardware (Infrastruktur, CPU, Hauptspeicher, Festplatten und

2177.book Seite 21 Montag, 10. Juni 2013 11:30 11

Page 16: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

22

Einleitung

Netzwerke) und Betriebspersonal (Administration, Wartung, Fehler-analyse). Nicht vernachlässigen dürfen Sie aber die Kosten, die entste-hen, wenn eine Anwendung nicht zur Verfügung steht oder nicht diegeforderte Performance erreicht – der Schaden übersteigt in diesemFall innerhalb weniger Stunden oder Tage den Betrag, der im Mittelin einem Jahr für die proaktive Performanceoptimierung investiertwird. Diese Risikokosten müssen ebenfalls den Kosten für ein proak-tives Performancemanagement gegenübergestellt werden. Tabelle 1führt Ihnen anhand zweier konkreter Beispiele den Nutzen des pro-aktiven Performancemanagements vor Augen.

Aktuelle Entwicklungen

Herausfor-derungen durch

das Internet undmobile Geräte

Mit dem Aufstieg des Internets, der Smartphones und Tablet-Compu-ter vollzieht sich ein Paradigmenwechsel in der Welt der betriebs-wirtschaftlichen Software: Nicht mehr auf den hoch spezialisiertenAngestellten an seinem PC zielt die Software ab, sondern auf Benut-zer des Internets (extern oder firmenintern als Intranet) oder den

Proaktive Maßnahme

Effekt im System

Sofortiger Nut-zen durch höhere Benutzerzufrie-denheit

Sofortiger Nut-zen durch gerin-gere Betriebs-kosten

Verminder-tes Eskala-tionsrisiko

Optimierung von SQL-Anweisungen

Reduktion der Datenbanklast

schnellere Ant-wortzeiten bei bestimmten Transaktionen

Hardwareinves-titionen (Daten-bankserver, Speichersystem) können gestreckt werden.

Überlastung des Daten-banksystems wird vermie-den.

proaktives Datenmanage-ment (Daten-vermeidung, Archivierung, Reorganisa-tion)

� Reduktion des Datenbank-wachstums

� kürzere Zeiten für Wartungs-arbeiten an der Datenbank (Backup/Reco-very, Upgrade, Migration, Sys-temkopie)

� schnellere Ant-wortzeiten bei bestimmten Transaktionen

� kürzere Down-time bei Wartungs-arbeiten

� Hardwareinves-titionen können gestreckt wer-den.

� geringerer Per-sonalbedarf bei Wartungsarbei-ten

Datenbank-größe bleibt »beherrsch-bar«.

Tabelle 1 Beispiele für den Nutzen eines proaktiven Performancemanagements

2177.book Seite 22 Montag, 10. Juni 2013 11:30 11

Page 17: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

23

Aktuelle Entwicklungen

Benutzer eines mobilen Gerätes. Der klassische Ansatz einer Prozess-automatisierung mit SAP R/3 basiert auf hoch spezialisierten Anwen-dern, die von festen Arbeitsplätzen über installierte SAP GUIs auf ihrERP-System (Enterprise Resource Planning) zugreifen. Die Rolle die-ses spezialisierten Vermittlers, der ausgebildet sein muss, um Soft-ware zu bedienen, wird allerdings an vielen Stellen zunehmend über-flüssig. Stattdessen erhält der Endbenutzer durch Internet undMobilgerät direkten Zugriff auf die ERP-Systeme der Unternehmen.Heute können z. B. in vielen Unternehmen die Mitarbeiter über dasIntranet ihre Arbeits- und Fehlzeiten, Reisekostenabrechnungen etc.selbst in das System eingeben, wo dies früher über zentrale Benutzergeschah. Kunden bestellen heute vermehrt ihre Produkte direkt überdas Internet und nicht mehr über den Umweg eines Briefes, Faxesoder Telefonanrufs bei einem Vertriebscenter.

Die Erwartungen, die der Anwender einer Internet- oder mobilenAnwendung an die Bedienbarkeit und Performance hat, sind un-gleich höher als die des klassischen Angestellten an sein ERP-System.Der Angestellte ist auf »sein« ERP-System angewiesen, und wenn esihm normalerweise dabei hilft, seine tägliche Arbeit zu vereinfachen,wird er es akzeptieren und auch kleinere Fehler oder Performance-schwächen in Kauf nehmen. Ganz anders der Internetbenutzer: Funk-tionieren die Anwendungen, die ihm im Internet angeboten werden,nicht einfach und performant, kann er sofort zur Konkurrenzfirmawechseln und dort z. B. seine Einkäufe tätigen (»Die Konkurrenz istnur einen Mausklick entfernt.«). Hinzu kommt: Das Internet machtnicht um 17 Uhr Feierabend – von einer E-Business-Lösung im Inter-net werden Verfügbarkeit und Performance an 365 Tagen 24 Stundenlang gefordert. Nutzer von mobilen Anwendungen legen die Maß-stäbe in Bezug auf Bedienbarkeit und Performance an eine SAP-An-wendung an, die sie auch von anderen Mobile Apps gewohnt sind.

SAP HANAMit SAP HANA ist es SAP gelungen, ein Produkt auf den Markt zubringen, das Analysten bereits heute als die wichtigste Innovationseit Jahren im Bereich von Business Software bezeichnen. Kern derInnovation ist eine Hauptspeicherdatenbank, um die sich weitere Ser-vices, z. B. ein als XS-Engine bezeichneter Applikationsserver, grup-pieren. In diesem Buch gehen wir ausschließlich auf die HANA-Datenbankplattform ein, da zu den weiteren Services die Felderfah-rungen noch fehlen.

2177.book Seite 23 Montag, 10. Juni 2013 11:30 11

Page 18: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

24

Einleitung

Das wichtigste Argument für die Einführung von SAP HANA ist Per-formance! SAP HANA macht sich die Verfügbarkeit von riesigenHauptspeichern und massiv parallelen Prozessorarchitekturen zuNutze und setzt diese konsequent durch modernste Softwarearchitek-tur in Performance um. Vielleicht werden Sie sich fragen: Brauche ichüberhaupt noch ein Buch über Performance, wenn ich HANA habe?Oder löst HANA alle Performanceprobleme? Die Antwort auf diezweite Frage ist – nach der festen Überzeugung des Autors – ein dop-peltes Nein: Zum einen kann auch SAP HANA keine Wunder voll-bringen, wenn Ihr Programm ganze Datenbanktabellen in den Appli-kationsserver liest und – schlimmer noch – die Daten weiter zumWebbrowser des Anwenders schickt. Der Löwenanteil der Laufzeitentfällt dann auf den Applikationsserver, das Netzwerk und denBrowser. Die grundlegenden Regeln zur performanten Programmie-rung sind auch bei SAP HANA nicht außer Kraft gesetzt! Ein zweitesNein ergibt sich aus der Tatsache, dass jeder technischen Innovation»Begehrlichkeiten« oder, anders formuliert, Herausforderungen ent-gegenstehen. Eine dieser Herausforderungen heißt Big Data.

Big Data Als Big Data bezeichnet man das Phänomen, dass immer mehr Datenentstehen, die für Unternehmen von Interesse sind, diese Daten aberbisher nicht oder nur unzureichend ausgewertet und nutzbargemacht werden können. Beispiele für solche Daten sind Beiträge insozialen Netzwerken, Protokolle von Webzugriffen, Bewegungsdatenvon Personen (z. B. über Mobilfunkortungen oder Posts mit Lokati-onsdaten in sozialen Netzwerken) und Produkten (die z. B. überRFID-Chips erfasst werden), Daten von Kameras, Mikrofonen undsonstigen Sensoren, Finanztransaktionen und Börsendaten sowieVerbrauchsdaten im Energiesektor. Unternehmen sind interessiertdaran, diese Daten zu erfassen, zu verknüpfen, auszuwerten und soüber ihre Kunden, Märkte und Produkte wertvolle Einsichten zugewinnen. Als Beispiel sei ein Produktionsplaner in der Konsum-güterindustrie genannt. Um vorausschauender planen zu können,werden ihm in Zukunft nicht nur die Produktionszahlen der Vergan-genheit und aktuelle Bestellungen als Grundlage dienen, sondernauch die aktuellen Trends der sozialen Netzwerke.

Kleine »Fehler« –große Wirkung

All diesen Datenquellen ist gemein, dass ihre Menge die traditionel-ler betriebswirtschaftlicher Daten (sogenannte Stamm- und Bewe-gungsdaten) um ein Vielfaches übersteigt. Übertragen auf unsere Per-formancefrage heißt das: Ein nicht performanceoptimiertes System

2177.book Seite 24 Montag, 10. Juni 2013 11:30 11

Page 19: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

25

Zu diesem Buch

oder Programm hat einen viel höheren Effekt als in einem »traditio-nellen« SAP Business Suite-System – als Konsequenz folgern wir:Auch in Zukunft wird Performance-Know-how ein wertvolles Gutsein.

IT-ServicesDie Anforderungen an eine offene, flexible Softwarearchitekturerfordern spezialisierte, für sich autark operierende Softwarekompo-nenten, die über Schnittstellen miteinander verknüpft sind. Diesbedeutet, dass ein Geschäftsprozess mehrere Softwarekomponenteninvolviert. Die stetig wachsende Anzahl von Lösungen und Kompo-nenten ist eine Herausforderung für die Administration in denRechenzentren – die Anzahl hat sich von dem »überschaubaren« SAPR/3 (mit SAP-Instanzen, Datenbank, Hardware/Betriebssystem) zueiner ständig wachsenden Technologiepalette entwickelt – Produkteeingeschlossen, die SAP nicht selbst produziert, sondern für die sieals Reseller auftritt.

Konsequenterweise steuern die Betreiber von Geschäftsprozessendiesem Trend entgegen, indem sie immer mehr Servicepartner in denBetrieb des Geschäftsprozesses integrieren. Dabei kann diesesOutsourcing nur die Hardware (Rechnerleistung, Festplattenspeicher,Netzwerkressourcen etc.) oder auch die Applikation selbst (Applica-tion Service Providing, ASP) betreffen; z. B. kann man die Dienstleis-tung eines Internetproduktkatalogs komplett an einen Serviceanbie-ter vergeben, anstatt die Katalogsoftware selbst zu betreiben. Dasbedeutet, dass nicht nur über Hardware- und Softwarekomponenten,sondern sogar über Firmen- und Kompetenzgrenzen hinweg Über-wachung geleistet werden muss.

Insgesamt ergeben sich also völlig neue Anforderungen an die Admi-nistration und Überwachung von SAP-Lösungen, die mit herkömm-lichen Konzepten nicht zu bewältigen sind.

Zu diesem Buch

Grundlagendes Buches

Die in diesem Buch dargestellten Methoden der Performanceanalyseund -optimierung entsprechen den Verfahren, die ursprünglich vonden Experten des EarlyWatch Services und des GoingLive Checks ver-wendet und in den SAP-Basis-Trainings Workload Analysis und Opti-mierung von ABAP-Programmen vermittelt werden. Mit jeder neuenAuflage dieses Buches – mittlerweile der siebten – wird die Chance

2177.book Seite 25 Montag, 10. Juni 2013 11:30 11

Page 20: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

26

Einleitung

genutzt, aktuelle Trends der Produktentwicklung bei SAP und – so-weit relevant – Entwicklungen der IT-Welt allgemein adäquat zu be-handeln.

In dieser Auflage sind die Java-Themen praktisch komplett neugeschrieben und in einem Kapitel gebündelt worden. Der wichtigstenNeuerung bei SAP seit vielen Jahren – SAP HANA – ist ein weiteresneues Kapitel gewidmet, das sich zunächst auf die HANA-Datenbank-plattform fokussiert. Weitere HANA-Services werden aufgrund derfehlenden Felderfahrung noch nicht behandelt. Alle weiteren Kapitelsind für diese Auflage überarbeitet und aktualisiert worden, z. B. wirddas neue ABAP-Lastverteilungskonzept (neu zu SAP NetWeaver 7.40)beschrieben, und das Thema Background-RFCs wurde aufgenom-men. In Anhang A, »Datenbankmonitore«, ist ein Abschnitt zurDatenbank Sybase ASE hinzugekommen.

Abbildung 2 Die Kapitel dieses Buches

Verständnis der Geschäftsprozesse

Definition des Service Level Managements

Überwachung und Analyse

Kapitel 2: Systemüberwachung

Detailanalyse und Optimierung

Kapitel 1: Performancemanagement

Kapitel 4: Programmanalyse

AS ABAP DB AS ABAP DB AS ABAP DB

Applikationsserver Datenbank

AS ABAP

AS ABAP

AS Java

Kapitel 12: Pufferung

AS ABAP AS Java DB

Kapitel 13: SAP BW

AS ABAP DB

Kapitel 14: TREX

Kapitel 15: HANA

Kapitel 9: Sperren

AS ABAP DB

AS ABAP AS Java DB

AS ABAP

Kapitel 5: Sizing, Lastverteilung

Kapitel 6: Speicher-konfiguration

Kapitel 7: Lastverteilung,Remote Function Calls

Kapitel 8: SAP GUI undInternetanbindung

Kapitel 10: SAP JVMund Java-Programme

Kapitel 11: SQL-Anweisungen

Kapitel 3: Workload-Analyse

2177.book Seite 26 Montag, 10. Juni 2013 11:30 11

Page 21: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

27

Zu diesem Buch

AufbauAbbildung 2 stellt die Kapitel dieses Buches orientiert an den fünfPhasen der Performanceoptimierung im Überblick dar. Kapitel 1,»Performancemanagement einer SAP-Lösung«, wendet sich sowohlan SAP-Administratoren und SAP-Berater als auch an Anwendungs-entwickler und SAP-Projektleiter. Es behandelt auf einem nicht tech-nischen Niveau die folgenden grundlegenden Fragen zur Perfor-manceanalyse:

� Welche Vorkehrungen müssen getroffen werden, um eine opti-male Performance einer SAP-Lösung zu gewährleisten?

� Welche Maßnahmen zum Performancetuning kommen in Betracht?

� Welche Personen sind in den Tuningprozess involviert?

Hinter der dem Benutzer angebotenen Leistung verbirgt sich in derPraxis oft ein Netz von Partnern, die jeweils Teilleistungen erbringen.Viele Teile werden von unterschiedlichen, manchmal externen Servi-ceprovidern erbracht. Um diese Komplexität in den Griff zu bekom-men, führen die meisten Leistungsanbieter und Kunden ein Service Le-vel Management (SLM) ein. Als SLM bezeichnet man eine strukturierteproaktive Methode, die das Ziel hat, den Benutzern einer IT-Anwen-dung ein adäquates Serviceniveau zu garantieren – in Übereinstim-mung mit den betriebswirtschaftlichen Zielen des Auftraggebers undbei optimalen Kosten. Wir zeigen in diesem Buch, mit welchen Werk-zeugen und Methoden Sie ein SLM für eine SAP-Lösung einführen.

In den Kapiteln 2 bis 4 finden Sie die Darstellung der Performance-analyse anhand des SAP NetWeaver Application Servers (AS) ABAP.Nach Lektüre dieser Kapitel sind Sie in der Lage, eine systematischePerformanceanalyse für den AS ABAP inklusive Datenbank undBetriebssystem durchzuführen.

In diesem Buch folgen wir zunächst der Strategie der Bottom-up-Ana-lyse und beginnen in Kapitel 2, »Analyse von Hardware, Datenbankund ABAP-Applikationsserver«, mit den Untersuchungen der Teilsys-teme Betriebssystem, Datenbank, SAP-Speicherkonfiguration undSAP-Workprozesse. Gleichzeitig werden Lösungsvorschläge angebo-ten, die den Administrator oder Berater befähigen sollen, die wich-tigsten Performanceprobleme zu lösen. Für kleine und mittelgroßeInstallationen wird diese Stufe des Tunings in vielen Fällen bereitsausreichen.

2177.book Seite 27 Montag, 10. Juni 2013 11:30 11

Page 22: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

28

Einleitung

Anschließend wird in Kapitel 3, »Workload-Analyse«, die komplexereWorkload-Analyse als Top-down-Analyse diskutiert. In Kapitel 4,»Identifizierung von Performanceproblemen in ABAP-Programmen«,finden Sie die Methoden zur Analyse einzelner Programme, u. a. mitden Hilfsmitteln Einzelsatzstatistik, SQL-Trace und ABAP-Laufzeit-analyse.

Die weiteren Kapitel 5 bis 15 vermitteln Wissen, das für eine umfas-sende Performanceanalyse notwendig ist. Sie wenden sich an SAP-Betreuer, die für das performante Funktionieren großer Systeme ver-antwortlich sind und die das Tuningpotenzial ihrer Systeme voll aus-schöpfen wollen und müssen. Kapitel 5 bis 15 sind weitgehend eigen-ständige Einheiten und können mit Kenntnis der ersten vier Kapitelin beliebiger Reihenfolge gelesen werden. Eventuelle Abhängigkei-ten sind am Anfang jedes Kapitels vermerkt.

Behandelt werden in den Kapiteln 5 bis 10 die Themen, die sich aufden Applikationsserver und den Präsentationsserver beziehen:

� Kapitel 5, »Hardware-Sizing, System- und Lastverteilung«: Eine op-timal ausgelegte Hardware ist Voraussetzung dafür, dass auf der ei-nen Seite keine Hardwareengpässe entstehen, dass aber auf der an-deren Seite nicht zu hohe Kosten durch unnötig vorgehalteneHardware anfallen. Serverkonsolidierung – d. h. die Konzentrationaller Services auf wenigen, sehr leistungsfähigen Rechnern – istzweifellos ein wichtiger Trend auf dem IT-Markt der letzten Jahre.Wir stellen dar, was Sie beachten sollten, wenn Sie diese Techno-logien effizient nutzen wollen.

� Kapitel 6, »Speicherkonfiguration« (Memory Management): DieKonfiguration der von der SAP-Komponente allokierten Speicher-bereiche hat wesentlichen Einfluss auf die Performance.

� Kapitel 7, »Lastverteilung und Remote Function Calls«: Eine opti-male Lastverteilung von Webanfragen, Dialog-, Verbuchungs- undHintergrundaufträgen hilft dabei, Hardware optimal zu nutzenund Engpässe aufgrund falscher Konfiguration zu vermeiden. DiePerformance von Schnittstellen zwischen Softwarekomponententrägt ebenfalls maßgeblich zur Performance der gesamten Lösungbei. Bereits in der Vergangenheit waren E-Business-Lösungen, dieaus nur einem monolithischen R/3-System bestanden, eine Selten-

2177.book Seite 28 Montag, 10. Juni 2013 11:30 11

Page 23: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

29

Zu diesem Buch

heit – die Regel sind offene, über Schnittstellen verbundene Lösun-gen aus mehreren Komponenten.

� Kapitel 8, »SAP GUI und Internetanbindung«: Analysen und Kon-figurationsvorschläge zeigen das Optimierungspotenzial bei derAnbindung der GUIs (klassisches SAP GUI oder Webbrowser) andie Applikation auf. Im Detail werden hier die Performanceaspektevon SAP GUI Controls, des Internet Transaction Servers (ITS), vonBusiness Server Pages und von Web Dynpro für ABAP behandelt.

� Kapitel 9, »Sperren«: Datenbank- und SAP-Sperren gewährleistendie Datenkonsistenz. Durch eine optimierte Verwaltung von Sper-ren (z. B. durch den ATP-Server oder die Pufferung von Nummern-kreisen) werden Durchsatzengpässe vermieden.

� Kapitel 10, »Optimierung der Java Virtual Machine und von Java-Programmen«: In diesem Kapitel finden Sie die Beschreibung derWerkzeuge, mit denen Sie die Performanceanalyse der Java Vir-tual Machine (SAP JVM) und von Java-Programmen durchführenkönnen.

Kapitel 11 eröffnet die Reihe der Kapitel mit Datenbankthemen undist Voraussetzung für die folgenden Kapitel 12 bis 15:

� Kapitel 11, »Optimierung von SQL-Anweisungen«: IneffektiveSQL-Anweisungen beanspruchen die Datenbank übermäßig undwerden daher zum Problem für die Performance der gesamtenAnwendung. In diesem Kapitel stellen wir die Detailanalyse für»teure« SQL-Anweisungen sowie Optimierungsmöglichkeitendurch Datenbankindizes und durch Programmoptimierung (»fünfgoldene Regeln«) dar.

� Kapitel 12, »SAP-Pufferung«: Die Pufferung von Tabellen auf denApplikationsservern beschleunigt den Zugriff auf oft geleseneDaten und dient der Entlastung der Datenbank.

� Kapitel 13, »Optimierung von Anfragen an SAP NetWeaver Busi-ness Warehouse«: Business-Warehouse-Anfragen sind spezielleSQL-Anweisungen, die in der Regel große Datenmengen bearbei-ten – für diese Art von Anfragen existieren spezielle Optimierungs-möglichkeiten.

� Kapitel 14, »Optimierung von Suchanfragen mit TREX«: TREXwird zur Optimierung von text- und attributbasierten Suchanfra-

2177.book Seite 29 Montag, 10. Juni 2013 11:30 11

Page 24: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

30

Einleitung

gen sowie von Business-Warehouse-Anfragen (»BW Accelerator«)genutzt – als Alternative zu herkömmlichen Datenbankindizes undAggregationstabellen.

� Kapitel 15, »Optimierung von Datenbankanfragen mit SAPHANA«: Dem neuen »Wunderkind« von SAP ist ein eigenes Kapitelgewidmet, das in die Grundlagen, Werkzeuge und Methoden zurPerformanceanalyse und -optimierung einführt.

Zielgruppen Kenntnisse in der Performanceoptimierung von SAP-Systemen und-Anwendungen sind für SAP-Administratoren, SAP-Anwendungsbe-treuer, SAP-Entwickler und SAP-Projektleiter von größtem Nutzen –an diese Zielgruppen richtet sich dieses Buch. Jedem Kapitel ist amEnde der Einleitung ein kurzer Abschnitt mit dem Titel »Wann soll-ten Sie dieses Kapitel lesen« vorangestellt. Aus diesem ergibt sich diegenaue Zielgruppe des jeweiligen Kapitels.

Voraussetzungen Dieses Buch setzt an den Stellen, an denen es um die konkrete Umset-zung von Empfehlungen geht, Kenntnisse in der Administration vonSAP-Komponenten in Theorie und Praxis voraus. Insbesondere dieBedienung des Computer Center Management Systems (CCMS) sollteIhnen vertraut sein. Als gute Vorbereitung kann z. B. der Band »SAPNetWeaver Application Server ABAP – Systemadministration« dienen(siehe Anhang E, »Informationsquellen«). Teile dieses Buches, z. B.die Kapitel 4, 9, 11 und 12, setzen außerdem Wissen über die Pro-grammiersprache ABAP und die Funktionsweise von relationalenDatenbanken und SQL voraus.

Grenzendes Buches

In den folgenden Bereichen stößt das Buch an seine Grenzen:

� Hardware- und NetzwerktuningEin Engpass bei CPU, Hauptspeicher, I/O oder Netzwerk lässt sichzwar aus dem SAP-System heraus mit großer Wahrscheinlichkeitidentifizieren, für eine detaillierte Analyse werden jedoch dieWerkzeuge der Hardware- bzw. Netzwerkanbieter benötigt. Ange-sichts der unübersehbaren Anzahl der angebotenen Produkte mussdieser Bereich (insbesondere das Tuning der Festplatten) ausge-klammert bleiben.

� DatenbankenSAP bietet im Computer Center Management System (CCMS)Werkzeuge an, die die Administration und Analyse der verschiede-

2177.book Seite 30 Montag, 10. Juni 2013 11:30 11

Page 25: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

31

Zu diesem Buch

nen Datenbankensysteme so weit wie möglich vereinheitlichen.Wer jedoch tiefer in das Datenbanktuning einsteigt, kommt nichtdaran vorbei, sich mit den unterschiedlichen Architekturen derDatenbanksysteme zu beschäftigen. Dabei ist es unmöglich, dieFeinheiten aller mit SAP-Lösungen eingesetzten Datenbanksys-teme in diesem Buch in der gebührenden Tiefe zu behandeln.Allerdings ist dies auch nicht notwendig, da zu allen Datenbank-systemen Literatur zum Tuning vorhanden ist. Dieses Buch kannund will diese Literatur nicht ersetzen. Sein Schwerpunkt liegt viel-mehr im SAP-spezifischen Kontext des Datenbanktunings und inder Vermittlung datenbanksystemübergreifender Konzepte. Diekonkreten Beispiele betreffen immer einzelne Datenbanksysteme.Im Anhang finden Sie eine Übersicht über die wichtigsten Moni-tore zur Datenbankanalyse für alle Datenbanksysteme.

� ApplikationstuningViele Performanceprobleme lassen sich nur mit detailliertemAnwendungswissen und Kenntnis der einzelnen SAP-Lösungenlösen. Oft ist es eine Änderung im Customizing, die die Lösung desProblems bringt. Know-how zum Tuning einzelner SAP-Lösungenist nicht Teil dieses Buches. Allerdings vermittelt es Ihnen Analy-sestrategien, sodass Sie Performanceprobleme auf bestimmteApplikationen eingrenzen und somit an den richtigen Entwickleroder Berater adressieren können.

Release-abhängigkeit

Eine Frage, die bereits vor Erscheinen des Buches heftig diskutiertwurde, ist, inwieweit release- und zeitabhängige InformationenInhalt des Buches sein können; dies betrifft z. B. Menüpfade, Empfeh-lungen für Konfigurationsparameter und Richtwerte für Perfor-mancekennzahlen. Eine neue Version, ein Patch (der SAP-Kom-ponente, der Datenbank oder des Betriebssystems), eine neueRechnergeneration – diese und andere Faktoren können mit einemSchlag alte Informationen wertlos machen; im schlimmsten Fall kön-nen sich veraltete Empfehlungen sogar kontraproduktiv auf die Per-formance auswirken. Dieses Risiko ist uns bewusst. Dennoch habenwir uns dafür entschieden, zeitabhängige Informationen und Regelnin das Buch aufzunehmen. Nur so kann Ihnen dieses Buch als Nach-schlagwerk für die tägliche Arbeit in der SAP-Administration dienen.Auf der anderen Seite ist klar: Dieses Buch ist kein Gesetzbuch, undwer Performanceoptimierung nur als stures Befolgen von Regeln

2177.book Seite 31 Montag, 10. Juni 2013 11:30 11

Page 26: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

32

Einleitung

betreibt, handelt fahrlässig. Die direkte Auseinandersetzung mit derLösung, der SAP-Onlinehilfe und aktuellen SAP-Hinweisen im SAPService Marketplace kann dieses Buch nicht ersetzen, sondern nurfördern.

SAP NetWeaver7.30

Alle Angaben zu Menüpfaden, Bezeichnungen in den Bildschirmender Performancemonitore und Richtwerten für Performancekenn-zahlen beziehen sich – sofern nicht anders vermerkt – auf SAP Net-Weaver 7.30. An einigen Stellen geben wir bereits einen Ausblick aufSAP NetWeaver 7.40.

Hinweise zurLektüre

In diesem Buch finden Sie mehrere Orientierungshilfen, die Ihnendie Arbeit mit dem Buch erleichtern sollen.

In hervorgehobenen Informationskästen sind Inhalte zu finden, diewissenswert und hilfreich sind, aber etwas außerhalb der eigentli-chen Erläuterung stehen. Damit Sie die Informationen in den Kästensofort einordnen können, haben wir die Kästen mit Symbolengekennzeichnet:

Die mit diesem Symbol gekennzeichneten Tipps geben Ihnen spezi-elle Empfehlungen, die Ihnen die Arbeit erleichtern können.

In Kästen, die mit diesem Symbol gekennzeichnet sind, finden SieInformationen zu weiterführenden Themen oder wichtigen Inhalten,die Sie sich merken sollten.

Dieses Symbol weist Sie auf Besonderheiten hin, die Sie beachten soll-ten. Es warnt Sie außerdem vor häufig gemachten Fehlern oder Pro-blemen, die auftreten können.

Beispiele, durch dieses Symbol kenntlich gemacht, weisen auf Szena-rien aus der Praxis hin und veranschaulichen die dargestellten Funk-tionen.

www.sap-press.de Wie schon für die früheren Auflagen werden wir Aktualisierungenund ggf. Korrekturen zum Buch auf der Verlagswebsite (www.sap-press.de) bereitstellen.

2177.book Seite 32 Montag, 10. Juni 2013 11:30 11

Page 27: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

75

Mit der Analyse der Hardwareressourcen, der Datenbank sowie der Workprozesse und Speicherbereiche des SAP NetWea-ver AS ABAP steigen wir – bottom-up – in die Performance-analyse ein. Verschaffen Sie sich einen ersten Überblick über die aktuelle Situation im System!

2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver

Dieses Kapitel erläutert die Grundlagen von Performanceanalysender Hardware, der Datenbank, der SAP-Speicherkonfiguration undder SAP-Workprozesse des SAP NetWeaver Application ServersABAP. Am Ende eines jeden Abschnitts finden Sie Flussdiagramme,die die wichtigsten Analysepfade zusammenfassen und die Abhängig-keiten zwischen den Analysen verdeutlichen. Im letzten Abschnittgehen wir auf den zentralen Überwachungsmonitor ein, der Perfor-manceindikatoren aus allen Bereichen integriert.

Zu diesen Analysen erhalten Sie sofort Optimierungsvorschläge, so-fern dies ohne umfangreichere Erklärungen möglich ist. Um auch ei-nem in der Performanceanalyse unerfahrenen Berater oder Adminis-trator einen schnellen Einstieg zu ermöglichen, verzichten wirbewusst auf Hintergrundinformationen. So wird z. B. beschrieben,wie Sie das SAP Extended Memory überwachen und einstellen, ohneden Begriff SAP Extended Memory zu erklären. Umfassendere Infor-mationen finden Sie anschließend in den Kapiteln 5 bis 15. DieserAufbau trägt unserer Erfahrung Rechnung, dass es möglich ist, vielePerformanceprobleme im Bereich von Betriebssystem, Datenbankund SAP-Basis anhand einfacher Handlungsanweisungen zu lösen,ohne sich vorher eingehend mit den Details der Architektur zu be-schäftigen.

2177.book Seite 75 Montag, 10. Juni 2013 11:30 11

Page 28: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

76

Analyse von Hardware, Datenbank und ABAP-Applikationsserver2

Wann sollten Sie dieses Kapitel lesen?

Dieses Kapitel sollten Sie lesen, wenn Sie die Performance des SAP-Systems, der Datenbank oder des Betriebssystems vom SAP-Systemaus technisch überwachen und optimieren wollen.

2.1 Begriffsklärungen

Die Begriffe Rechner, Server, Applikationsserver, SAP-Instanz, Daten-bank, Datenbankserver und Datenbankinstanz werden in diesem Buchwie folgt verwendet:

Rechner Ein Rechner (oder Computer) ist eine physische Maschine mit CPU,Hauptspeicher, IP-Adresse etc.

SAP-Applika-tionsinstanz

Eine SAP-Applikationsinstanz, auch kurz als SAP-Instanz bezeichnet,ist eine administrative Einheit: Sie besteht aus einem Satz von SAP-Workprozessen, die von einem Dispatcher verwaltet werden, sowieaus einem Satz von SAP-Puffern im Shared Memory des Rechners, aufden die Workprozesse zugreifen. Eine SAP-Applikationsinstanz kanneine ABAP-Applikationsinstanz (SAP NetWeaver Application ServerABAP, kurz AS ABAP oder eine Java-Applikationsinstanz (SAP Net-Weaver Application Server Java, kurz AS Java) sein. Es kann mehrereSAP-Instanzen auf einem Rechner geben. In diesem Fall existierenmehrere Dispatcher und mehrere Puffersätze. Ein Applikationsserverist ein Rechner, auf dem mindestens eine SAP-Instanz läuft.

Datenbank Jedes SAP-System besitzt genau eine Datenbank. Als Datenbankbezeichnen wir die Datenbasis, die z. B. in Form von Dateien vorliegt.Die Datenbank ist der passive Teil des Datenbanksystems.

Der aktive Teil des Datenbanksystems ist die Datenbankinstanz, eineadministrative Einheit, die den Zugriff auf eine Datenbank erlaubt.Eine Datenbankinstanz besteht aus Datenbankprozessen und einemSatz von Datenbankpuffern im Shared Memory eines Rechners. EinDatenbankserver ist ein Rechner, auf dem mindestens eine Datenbank-instanz läuft. Ein Rechner kann zugleich Datenbank- und Applikati-onsserver sein, wenn eine Datenbankinstanz und eine SAP-Instanzdarauf laufen.

In der Regel operiert im SAP-Umfeld auf einer Datenbank nur eineDatenbankinstanz. Beispiele für Datenbanksysteme, bei denen auf

2177.book Seite 76 Montag, 10. Juni 2013 11:30 11

Page 29: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

77

Hardwareanalyse 2.2

eine Datenbank mehrere Datenbankinstanzen zugreifen, sind DB2und Oracle Parallel Server. Die Besonderheiten solcher parallelenDatenbanksysteme werden in diesem Buch nicht behandelt.

SAP-SystemAls SAP-Systeme bezeichnen wir Softwarekomponenten von SAP mitdem SAP NetWeaver AS als Grundlage. Im Einzelnen sind dies SAPERP, SAP NetWeaver BW, SAP APO, SAP SRM und SAP NetWeaverPortal.

Im Sinne dieser Terminologie kann also z. B. ein SAP ERP-System ausein oder zwei Systemen bestehen, je nachdem, ob der Java- und derABAP-Teil auf einem gemeinsamen System mit einer Datenbank(»Double-Stack«) oder auf zwei Systemen mit getrennten Datenban-ken betrieben werden – dieser Terminologie folgt im Übrigen auchder SAP Solution Manager.

ServerDer Begriff Server wird in der Dokumentation und der Literaturmehrdeutig verwendet. Er kann sowohl einen Rechner bezeichnen,z. B. im Begriff Datenbankserver, als auch einen logischen Service, z. B.in den Begriffen Message-Server und ATP-Server. So verwenden wirauch ABAP-Server bzw. Java-Server als Kurzformen für den SAP Net-Weaver Application Server (AS) ABAP bzw. Java.

2.2 Hardwareanalyse

Betriebs-systemmonitor

Das Werkzeug zur Analyse von Hardwareengpässen und Betriebssys-temproblemen ist der Betriebssystemmonitor. Um diesen Monitorfür den Applikationsserver zu starten, auf dem Sie zurzeit angemeldetsind, wählen Sie:

Werkzeuge � Administration � Monitor � Performance � Betriebssystem � Lokal � Betriebssystemmonitor

Alternativ können Sie den Transaktionscode ST06 verwenden. Siegelangen auf den Hauptbildschirm des Betriebssystemmonitors.

Aufruf und Verfügbarkeit

Zu Basis-Version 7.10 wurde der Betriebssystemmonitor überarbei-tet. Nach dieser Überarbeitung führen die drei TransaktionscodesOS06, OS07 und ST06 auf einen Monitor, mit dem sowohl der lokaleals auch entfernte Rechner überwacht werden können. Bei Versionenvor 7.10 stehen die neuen Transaktionen unter den TransaktionscodesOS06N, OS07N und ST06N zur Verfügung, mit den Transaktions-

2177.book Seite 77 Montag, 10. Juni 2013 11:30 11

Page 30: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

78

Analyse von Hardware, Datenbank und ABAP-Applikationsserver2

codes OS06, OS07 und ST06 erreichen Sie nach wie vor die älterenTransaktionen. Alle Informationen, die wir in diesem Buch bespre-chen, stehen Ihnen auch in den alten Transaktionen zur Verfügung.Die Detailanalysen finden Sie über die Navigation mit der Schalt-fläche Detail Analysis Menu.

Der Betriebssystemmonitor lässt sich auch aus der Serverübersichtheraus aufrufen:

Werkzeuge � Administration � Monitor � Systemüberwachung �Server (Transaktionscode SM51)

Positionieren Sie anschließend den Cursor auf dem gewünschtenApplikationsserver, und wählen Sie im Menü Springen � Monitore �OS-Monitor.

Aufbau Der Bildschirm des Betriebssystemmonitors teilt sich in drei Bereiche(siehe Abbildung 2.1).

Abbildung 2.1 Hauptbildschirm des Betriebssystemmonitors

2177.book Seite 78 Montag, 10. Juni 2013 11:30 11

Page 31: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

79

Hardwareanalyse 2.2

Im linken oberen Fenster finden Sie die Auswahl der Rechner, dieüberwacht werden. Dort können Sie einen Rechner auswählen, denSie analysieren wollen. Im linken unteren Fenster wählen Sie dieAnalysedaten aus. Die Daten zum ausgewählten Rechner und zur aus-gewählten Analyse finden Sie im rechten Fenster.

Standardmäßig finden Sie alle Rechner, auf denen SAP-ABAP-Instan-zen installiert wurden, in der Auswahlliste. Grundsätzlich lässt sichaber jeder Rechner in den Remote-Betriebssystemmonitor einbin-den, sofern dort ein Monitoring-Agent installiert ist. Dringend emp-fohlen wird dies für Rechner, auf denen eine Stand-alone-Datenbank,eine SAP-Java-Instanz oder ein TREX läuft.

SAP-SupportBeachten Sie, dass Sie diesen Monitor auch dann einrichten sollten,wenn Sie mit einem Werkzeug eines anderen Herstellers die Auslas-tung Ihrer Rechner überwachen. Sollten Sie Support von SAP benöti-gen, kann ein Experte von SAP nur über den SAP-eigenen Monitordie Rechner analysieren.

2.2.1 Analyse eines Hardwareengpasses(CPU und Hauptspeicher)

Eine Übersicht über die wichtigsten Betriebssystem- und Hardware-daten finden Sie unter dem Punkt Snapshot in der Analyseauswahldes Betriebssystemmonitors (siehe Abbildung 2.1). Alle Daten desBetriebssystemmonitors werden vom Hilfsprogramm saposcol imZehn-Sekunden-Rhythmus aufgefrischt. Ein Auffrischen der Datenmit der entsprechenden Drucktaste ergibt also nur dann neue Daten,wenn zehn Sekunden verstrichen sind.

CPU-AuslastungIm Abschnitt CPU finden Sie die Felder Benutzerauslastung, System-

auslastung und Leerlauf. Diese Werte zeigen an, wie viel Prozent derCPU-Kapazität augenblicklich von Benutzerprozessen (d.h. vom SAP-System, der Datenbank und weiteren Prozessen) und vom Betriebssys-tem selbst genutzt werden und wie viel Prozent derzeit frei sind. DasFeld Anzahl CPUs gibt die Anzahl der CPU-Fäden (»Threads«) an.Mittlere Prozesswartezeit ist die Anzahl der Prozesse, die auf einenfreien Prozessor warten. Dieser Wert wird im Mittel über eine Minute,über fünf Minuten und über 15 Minuten angegeben. Die weiterenWerte im Abschnitt CPU sind für die Performanceanalyse wenigerwichtig. Tabelle 2.1 gibt Ihnen einen Überblick über die Felder desBetriebssystemmonitors.

2177.book Seite 79 Montag, 10. Juni 2013 11:30 11

Page 32: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

80

Analyse von Hardware, Datenbank und ABAP-Applikationsserver2

Prozessoren, Kerne (Cores) und Fäden (Threads)

Als Beschreibung der Rechnerausstattung findet man z.B. folgende Angaben:»zwei Prozessoren, acht Cores, 16 Threads, Prozessor des Herstellers X mit2.93 GHz Taktfrequenz«. Was bedeuten die Angaben über die Anzahl derProzessoren, Kerne (Cores) und Fäden (Threads) für das SAP-System?

Der Begriff Prozessor bezeichnet bekanntlich die zentrale Verarbeitungseinheit(Central Processing Unit, CPU) eines Rechners, die in der Lage ist, Programmeauszuführen. Dabei unterscheidet man zwischen Einkernprozessoren undMehrkernprozessoren. Mehrkernprozessoren verfügen über mehrere vollstän-dig ausgebaute Verarbeitungseinheiten (Kerne) auf einem Chip. Die einzelnenKerne teilen sich lediglich den Bus, sind also als vollwertige CPUs anzusehen.Mehrfädige Prozessorkerne (Multi-Threaded-CPUs) verfügen über eine CPU,melden sich aber als mehrere CPUs am Betriebssystem an. Damit bilden sichfür diese Kerne mehrere Warteschlangen, aus, zwischen denen der Kern hin-und herschaltet. Um diesen Wechsel zu optimieren, besitzt jeder Thread eineneigenen Registersatz, einschließlich Stack Pointer und Program Counter, damitkann ohne zusätzliche Prozessorzyklen zwischen den Threads geschaltet wer-den. Diese hardwareseitigen Threads sollten Sie jedoch nicht mit den Threadsverwechseln, die die Anwendungsprozesse erzeugen (User- oder Software-Threads). Innerhalb eines Prozesses der Datenbank, des ABAP-, Java- oderTREX-Servers können mehrere (Software-)Threads erzeugt werden, die vomBetriebssystem in Zeitscheiben ausgeführt werden. Den Wechsel zwischenden (Software-)Threads bezeichnet man als Kontextwechsel. Unter diesemGesichtspunkt kann man also sagen, dass zusätzliche (Hardware-)ThreadsKontextwechsel zwischen (Software-)Threads begünstigen und damit den vor-handenen Kern besser auslasten helfen, allerdings von der Leistungssteigerungnicht ganz an einen zusätzlichen Kern heranreichen.

Feld Bedeutung

Benutzerauslastung CPU-Auslastung durch Benutzerprozesse (SAP-System, Datenbank etc.)

Systemauslastung CPU-Auslastung durch das Betriebssystem

Leerlauf Freie CPU-Kapazität. Dieser Wert sollte mindes-tens 20 % betragen, optimalerweise aber 35 %.

Anzahl der CPUs Anzahl der CPU-Threads

Mittlere Prozess-

wartezeit

Anzahl der Prozesse, die auf die CPUs warten, gemittelt über eine, fünf bzw. 15 Minuten

Physischer Speicher physisch vorhandener Hauptspeicher (RAM) in KB

Tabelle 2.1 Felder des Betriebssystemmonitors

2177.book Seite 80 Montag, 10. Juni 2013 11:30 11

Page 33: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

81

Hardwareanalyse 2.2

Hauptspeicher-auslastung

Der Abschnitt Memory enthält Informationen über den physisch vor-handenen Hauptspeicher (Feld Physischer Speicher) und Werte überdas Betriebssystem-Paging. Unter Swap finden Sie den aktuell allo-kierten Auslagerungsspeicher (Swap-Space). Der Auslagerungsspeichermuss größer als die Summe des konfigurierten Speicherbereichs sein.

Programmabbrüche durch Speicherknappheit

Ist die Summe aus physischem Speicher und Auslagerungsspeicher kleinerals der vom SAP-System, von der Datenbank und anderen Programmenbenötigte Speicher, kann es zu Speicherverwaltungsfehlern (d. h. zu Pro-grammabbrüchen innerhalb des SAP-Systems), im schlimmsten Fall sogarzum Abbruch des Betriebssystems, kommen. Sie sollten also in jedem Fallden Auslagerungsspeicher ausreichend dimensionieren.

Historien: CPU und Hauptspeicher

Um einen Überblick über die CPU-Auslastung der letzten 24 Stundenzu erhalten, wählen Sie im Betriebssystemmonitor die AnalyseVorige Stunden � CPU. Sie gelangen auf den Bildschirm Vorige

Stunden CPU. Die Bedeutung der Felder ist dieselbe wie im Haupt-bildschirm, nur sind die Werte über eine Stunde gemittelt. Einenähnlichen Überblick gibt es auch für die Hauptspeicherbelegung(Vorige Stunden � Speicher) und für den Auslagerungsspeicher etc.

Wann liegt ein CPU- bzw. ein Hauptspeicherengpass vor?

RichtwerteIm Stundenmittel sollte der freie CPU-Anteil Leerlauf mindestens20 % betragen, um auf kurze Lastspitzen reagieren zu können.Erwünscht sind sogar eher 35 % freie CPU-Kapazität. Für die Paging-Rate gelten folgende Richtwerte:

� Bei Rechnern, die eine Datenbank, eine Java-Instanz oder einenTREX beherbergen, sollten nur sehr geringe Paging-Raten zu beob-achten sein, d. h., sie sollten so dimensioniert sein, dass der verfüg-bare Hauptspeicher den konfigurierten Speicherbereichen ent-spricht.

� Bei Rechnern, die ausschließlich ABAP-Instanzen tragen, könnenmäßige Paging-Raten von bis zu 20 % des physischen Hauptspei-chers pro Stunde toleriert werden.

Dabei ist für Betriebssysteme, die kontinuierlich Speicher auslagern(z. B. Microsoft Windows), die Paged-in-Rate entscheidend, fürandere Betriebssysteme hingegen, die erst bei Bedarf auslagern (die

2177.book Seite 81 Montag, 10. Juni 2013 11:30 11

Page 34: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

82

Analyse von Hardware, Datenbank und ABAP-Applikationsserver2

meisten UNIX-Derivate), die Paged-out-Rate. Umgekehrt bedeutet dasÜberschreiten dieser Richtwerte nicht automatisch, dass ein Hard-wareengpass vorliegt. Vielmehr sollten Sie in diesem Fall mithilfe desWorkload-Monitors prüfen, ob sich die CPU-Auslastung bzw. diePaging-Rate negativ auf die Antwortzeiten auswirkt. EntsprechendeAnalysen finden Sie in Abschnitt 3.4.1, »Allgemeines Performance-problem analysieren«.

Haupt-speicher-engpass

Wenn Sie in der Voranalyse hohe Paging-Raten auf mehreren Rechnernbeobachten, sollten Sie den von den SAP-Instanzen und der Datenbankallokierten Hauptspeicher berechnen (siehe die Abschnitte 2.4.3,»Anzeige des allokierten Speichers«, und 2.3.2, »Analyse der Daten-bankpuffer«). Vergleichen Sie diesen mit dem physisch vorhandenenHauptspeicher. Erfahrungen zeigen, dass es in der Regel unkritisch ist,50% mehr Speicher virtuell zu allokieren, als physisch vorhanden sind.

Bei den Betriebssystemen Microsoft Windows und Oracle Solariskann die Auswertung der Paging-Rate auf dem Datenbankserver zuFehlinterpretationen führen, da dort Schreib-/Lese-Operationen (I/O)unter gewissen Umständen ebenfalls als Paging gezählt werden. Ver-gleichen Sie dazu die SAP-Hinweise 124199 (Solaris) und 689818(Windows).

Ursache von Hardwareengpässen

Ist nach den oben genannten Kriterien ein Hardwareengpass aufeinem oder mehreren Rechnern des SAP-Systems erkennbar, sind fol-gende Ursachen möglich:

� Falsche LastverteilungWenn Sie in einem verteilten System mit mehreren Rechnern aufmindestens einem Rechner einen Hardwareengpass feststellen,während andere Rechner über ungenutzte Ressourcen verfügen,liegt vermutlich eine falsche Lastverteilung vor. In diesem Fall soll-ten Sie die SAP-Workprozesse und die Benutzer neu verteilen.

Überaus wichtig ist es, dass der Datenbankserver über genügendRessourcen verfügt. Ein CPU- oder Hauptspeicherengpass auf demDatenbankserver führt dazu, dass die benötigten Daten aus derDatenbank nicht zügig bereitgestellt werden können, was sich wie-derum negativ auf die Antwortzeiten innerhalb des gesamten Sys-tems auswirkt.

2177.book Seite 82 Montag, 10. Juni 2013 11:30 11

Page 35: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

83

Hardwareanalyse 2.2

� CPU-Auslastung einzelner ProgrammeWählen Sie im Betriebssystemmonitor (Transaktionscode ST06)die Analyse Snapshot � Top CPU processes. Sie gelangen in dieÜbersicht der Betriebssystemprozesse. Diese gibt Ihnen einenÜberblick über die derzeit aktiven Prozesse und deren Ressourcen-auslastung.

Übersicht der Betriebssystem-prozesse

Abbildung 2.2 zeigt eine solche Übersicht für ein System, auf demeine ABAP-Instanz und eine DB2-Datenbank installiert sind. Fol-gende Prozesse können Sie identifizieren:

� dw_<instance>: SAP-Workprozess der SAP-ABAP-Instanz aufeinem UNIX-Betriebssystem. Auf Windows-Betriebssystemen lau-tet die Bezeichnung disp+work.

� db2sysc: Datenbankprozess der DB2-Datenbank. Die Prozesseanderer Datenbanken führen in der Regel ihre Markenbezeich-nung (z. B. Oracle) im Prozess- oder Benutzernamen.

Abbildung 2.2 Analyse der Top-CPU-Prozesse im Betriebssystemmonitor

2177.book Seite 83 Montag, 10. Juni 2013 11:30 11

Page 36: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

84

Analyse von Hardware, Datenbank und ABAP-Applikationsserver2

Betriebssystemprozesse, die Sie anhand der folgenden Namensbe-standteile erkennen können, gehören außerdem zu SAP-Instanzen:

� jstart ...: Serverprozess der SAP-Java-Instanz

� TREX ...: TREX-Prozess, der Servertyp kann dem Prozessnamenentnommen werden, z. B. Index-Server, Präprozessor etc.

� icman ...: Prozess des Internet Communication Managers (ICM)

� saposcol ...: Hilfsprogramm, das u. a. die Daten für den Betriebs-systemmonitor sammelt

Analyse der CPU-Auslastung

Beobachten Sie durch Auffrischen des Monitors, ob einzelne Prozesseüber längere Zeit hinweg die CPU stark belasten (Spalte CPU (%)).Handelt es sich bei den Prozessen, die die CPU stark belasten, um Pro-zesse der SAP-Basis oder der Datenbank, finden Sie in den im Folgen-den genannten Monitoren weitere Informationen über die Tätigkei-ten der Prozesse. Starten Sie den Monitor in einem zweiten Modus,identifizieren Sie anhand der Prozess-ID, die Sie auch in den entspre-chenden Basismonitoren finden, den Prozess mit der hohen CPU-Auslastung, und entnehmen Sie den Monitoren, welches Programmbzw. welche Tabelle, Anfrage etc. der Prozess gerade bearbeitet.

� SAP-Workprozesse der ABAP-InstanzStarten Sie in einem zweiten Modus die SAP-Workprozess-Über-sicht (siehe Abschnitt 2.5, »Analyse der SAP-Workprozesse«). DerWorkprozess-Übersicht entnehmen Sie u. a. den Namen des lau-fenden ABAP-Programms und des zugehörigen Benutzers.

� Serverprozess der Java-InstanzStarten Sie die SAP Management Console (siehe Abschnitt 10.3,»SAP Management Console«). Prozessinterna erhalten Sie durcheinen Thread-Dump.

� TREX-ProzesseStarten Sie das TREX-Administrationswerkzeug (siehe Abschnitt14.2, »Performanceanalyse auf dem TREX durchführen«). ImMonitor Services finden Sie Details zu den TREX-Services.

� ICMStarten Sie den ICM-Monitor (siehe Abschnitt 2.6, »Analyse desInternet Communication Managers (ICM)«).

� DatenbankprozesseStarten Sie im DBA-Cockpit den Datenbankprozessmonitor (sieheAbschnitt 2.3.3, »Identifizierung teurer SQL-Anweisungen«), um

2177.book Seite 84 Montag, 10. Juni 2013 11:30 11

Page 37: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

85

Hardwareanalyse 2.2

die SQL-Anweisungen zu identifizieren, die aktuell von der Daten-bank bearbeitet werden.

Die Prozessübersicht auf Betriebssystemebene bietet Ihnen alsozusammen mit den genannten Monitoren vergleichsweise bequemdie Möglichkeit, Programme, Transaktionen bzw. SQL-Anweisungenoder TREX-Anfragen mit hoher CPU-Auslastung zu identifizieren.

Externe ProzesseEin CPU-Engpass kann durch externe Prozesse verursacht werden. Fin-den Sie in der Prozessübersicht externe Prozesse (d. h. Prozesse, dienicht direkt zum SAP-System gehören) mit einem hohen CPU-Kon-sum, die zu einem CPU-Engpass führen, sollten Sie prüfen, ob diesefür den Betrieb Ihres Systems notwendig sind oder ob sie abgeschal-tet oder auf einen anderen Rechner verlagert werden können. Bei-spiele für externe Prozesse sind: Verwaltungssoftware, Virenscanner,Backup, externe Systeme, Bildschirmschoner (!) etc.

Identifizierung eines CPU-Engpasses

Sie beobachten während Ihrer Hauptarbeitszeit einen CPU-Engpass. In derProzessübersicht des Betriebssystemmonitors stellen Sie fest, dass ein SAP-Workprozess über Minuten hinweg eine CPU-Auslastung von 30 % zeigt.In der SAP-Workprozess-Übersicht identifizieren Sie ein lang laufendesHintergrundprogramm. In diesem Fall sollten Sie prüfen, ob dieses Hinter-grundprogramm zu Zeiten niedriger Dialoglast eingeplant werden kann.

Speicherbedarf einzelner Programme

Analog dem Vorgehen bei einem CPU-Engpass können Sie sich beieinem Hauptspeicherengpass auf die Suche nach Programmen mithohem Speicherbedarf machen. Vergleichen Sie dazu Kapitel 6,»Speicherkonfiguration«.

File System Cache minimieren

Betriebssysteme verwalten in der Regel einen eigenen File SystemCache. Dieser Cache konkurriert mit dem SAP-System und der Daten-bank um die Nutzung des Hauptspeichers. Ist der Cache zu groß ein-gestellt, kommt es zu hohen Paging-Raten, obwohl mehr physischerHauptspeicher verfügbar ist, als durch SAP-System und Datenbankallokiert wurden. Wir empfehlen Ihnen, diesen Cache auf 7 bis 10 %des physischen Speichers zu reduzieren.

UNIXDie Betriebssystemparameter zur Einstellung des File System Cachessind z. B. dbc_max_pct bei HP-UX, ubc-maxpercent bei Digital UNIXund maxperm bei AIX.

2177.book Seite 85 Montag, 10. Juni 2013 11:30 11

Page 38: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

86

Analyse von Hardware, Datenbank und ABAP-Applikationsserver2

Windows Um den Microsoft Windows File Cache zu minimieren, rufen Sie dieNetzwerkeinstellung (Symbol: Network) im Control Panel IhresWindows-Betriebssystems auf. Wählen Sie die Registerkarte Ser-

vices, Service Server, Schaltfläche Properties. Wählen Sie in der fol-genden Maske unter Optimization die Option Maximize Through-

put for Network Applications aus, und bestätigen Sie mit OK. Umden so reduzierten File Cache zu aktivieren, muss der Rechner neugestartet werden.

Ein Hauptspeicherengpass kann zu einem erhöhten CPU-Konsumaufgrund starken Pagings und damit zum CPU-Engpass führen. DieBeseitigung des Hauptspeicherengpasses kann also unter Umständenein Verschwinden des CPU-Engpasses mit sich bringen.

2.2.2 Identifizierung von Schreib-/Lese-(I/O-)Problemen

Im Betriebssystemmonitor (Transaktionscode ST06) finden Sie in derAnalysesicht Snapshot � Platte u. a. Informationen über die Auslas-tung der Festplatten und – sofern das Betriebssystem diese korrektzur Verfügung stellt – über Warte- und Antwortzeiten der Platten.

Festplattenmonitor Durch einen Doppelklick auf eine Zeile erhalten Sie für die ausge-wählte Festplatte einen Überblick über die mittleren Antwortzeiteninnerhalb der letzten 24 Stunden. Tabelle 2.2 listet die angezeigtenFelder und ihre Bedeutung auf.

Feld Bedeutung

Disk Name der Festplatte auf Betriebssystemebene

Auslastung (%) Auslastung der Platte (in Prozent)

Queue-Länge Anzahl der Prozesse, die auf I/O-Operationen warten

Wartezeit (ms) Wartezeit (in Millisekunden)

Servicezeit (ms) Servicezeit (in Millisekunden)

Übertragung (KB/s) Übertragungsrate (in KB/Sekunde)

Operationen (per Sec) Anzahl der I/O-Operationen (pro Sekunde)

Antwortzeit (ms) mittlere Antwortzeit der Festplatte (in Milli-sekunden)

Tabelle 2.2 Felder des Festplattenmonitors

2177.book Seite 86 Montag, 10. Juni 2013 11:30 11

Page 39: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

87

Hardwareanalyse 2.2

I/O-EngpassStellen Sie anhand dieser Monitore fest, dass einzelne Platten starkausgelastet sind (Auslastung (%) > 50 %), liegt ein potenzieller I/O-Engpass vor. Aus dem SAP-System heraus ist allerdings nur eine sehrbeschränkte Aussage über I/O-Probleme möglich. Eine detaillierteAnalyse kann nur mit Mitteln des Hardwarepartners durchgeführtwerden.

Ein I/O-Engpass ist insbesondere dann kritisch, wenn auf dieser Fest-platte der Auslagerungsspeicher des Betriebssystems liegt. Darüberhinaus ist der Betriebssystemmonitor für den Datenbankserver vonbesonderem Interesse. Zusammen mit dem Datenbankmonitor kön-nen mit dieser Anzeige Engpässe beim Lesen bzw. Schreiben auf dieFestplatten eingegrenzt werden. Weitere Details zu diesem Problemfinden Sie in Abschnitt 2.2.2, »Identifizierung von Schreib-/Lese-(I/O-)Problemen«.

2.2.3 Weitere Analysen auf Betriebssystemebene

Parameter-änderungen

Das SAP-System protokolliert für UNIX-Betriebssysteme alle Ände-rungen der Betriebssystemparameter. Das Änderungsprotokoll kannüber den folgenden Pfad im Betriebssystemmonitor angezeigt wer-den: Weitere Funktionen � Parameteränderungen. PositionierenSie den Cursor auf dem Namen eines Servers, und wählen Sie dieSchaltfläche History of File. Anhand des Änderungsprotokolls lässtsich feststellen, ob Performanceprobleme eventuell erst nach Para-meteränderungen aufgetreten sind und damit in Zusammenhang ge-bracht werden können.

Netzwerk-CheckMit dem Werkzeug Weitere Funktionen � LAN-Überprüfung mit

Ping lässt sich ein grober Netzwerktest durchführen. Sie könnenbeliebige Datenbank-, Applikations- oder Präsentationsserver aus-wählen und die Netzwerkverbindung (z. B. die Antwortzeiten undDatenverluste) testen. Auch wenn der Name der Analyse fälschlicher-weise LAN-Überprüfung heißt, können auch Rechner im WAN ange-sprochen werden. Ein Beispiel für eine Analyse mit diesem Werkzeugfinden Sie in Abschnitt 8.1.2, »Performance der GUI-Kommunikationanalysieren und optimieren«.

2177.book Seite 87 Montag, 10. Juni 2013 11:30 11

Page 40: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

88

Analyse von Hardware, Datenbank und ABAP-Applikationsserver2

Zusammenfassung

Die Gefahr eines Hardwareengpasses besteht, wenn:

� im Stundenmittel weniger als 20 % CPU-Kapazität frei sind

� mehr als 20 % des physischen Hauptspeichers pro Stunde ausgela-gert (»gepaged«) werden

� einzelne Festplatten der Datenbank zu mehr als 50 % ausgelastetsind

Insbesondere die Überlastung des Datenbankservers kann zu Perfor-manceproblemen führen, die sich systemweit auswirken. Prüfen Siemithilfe des Workload-Monitors, ob sich die hohe CPU-Auslastungbzw. die hohen Paging-Raten negativ auf die Antwortzeiten des SAP-Systems bzw. der Datenbank auswirken (siehe Abschnitt 3.4, »Work-load-Analyse durchführen«).

Hardwareengpassanalysieren

Abbildung 2.3 und Abbildung 2.4 zeigen den Analysepfad bei einemHardwareengpass: Häufig kann ein Hardwareengpass durch die Neu-verteilung der Last (z. B. durch das Verlagern von Workprozessen)behoben werden. Ursachen für einen CPU-Engpass sind z. B. ineffizi-ente Applikationen, die im Datenbankprozessmonitor und in derWorkprozess-Übersicht identifiziert werden können, oder externe,nicht zu einer SAP-Instanz bzw. der Datenbankinstanz gehörendeProzesse. Daher muss immer eine vollständige Performanceanalysedurchgeführt werden, bevor endgültig entschieden werden kann, obdie vorhandene Hardware für die gegebenen Anforderungen an dasSAP-System ausreicht oder nicht.

Die Flussdiagramme in Abbildung 2.3 und Abbildung 2.4 zeigenIhnen schematisch das Vorgehen bei einem Hardwareengpass. Sieverweisen auf später in diesem Buch beschriebene Monitore undAnalysen. Sie werden ähnliche Diagramme an vielen Stellen diesesBuches finden.

2177.book Seite 88 Montag, 10. Juni 2013 11:30 11

Page 41: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

89

Datenbankanalyse 2.3

2.3 Datenbankanalyse

Der SAP NetWeaver Application Server (AS) kann zurzeit mit achtverschiedenen relationalen Datenbanksystemen sowie mit derHauptspeicherdatenbank SAP HANA betrieben werden. Auch wenndiese Datenbanksysteme alle eine unterschiedliche Architektur besit-

Abbildung 2.3 Detailanalyse eines Hardwareengpasses (CPU)

Abbildung 2.4 Detailanalyse eines Hardwareengpasses (Hauptspeicher)

Betriebssystemmonitor (Transaktionscode ST06)

Hohe CPU-Auslastung (CPU idle im Stundenmittel < 35%)

Ist noch CPU-Speicherkapazität auf anderen Rechnern des Systems frei?

SAP-Workprozesse und Benutzer neu verteilen!

Betriebssystemmonitor (Transaktionscode ST06): Top-CPU-Prozesse

SAP-Workprozesse mit hoher CPU-Auslastung

Workprozess-Übersicht (Transaktionscode SM50 oder SM66)

Detailanalyse des ABAP-Programms (mit ABAP-Trace SE30)

Datenbankprozesse mit hoher CPU-Auslastung?

Datenbankprozessmonitor (DBA-Cockpit, z. B. DB2 Applications)

Detailanalyse teurer SQL-Anweisungen

Externe Prozesse mit hoher CPU-Auslastung?

Abschalten, optimieren oder verlagern!

Betriebssystemmonitor (Transaktionscode ST06)

Hohe Paging-Rate (Paging pro Stunde > 20 % des RAM)?

Ist noch CPU- und Speicherkapazität auf anderen Rechnern des Systems frei?

SAP-Workprozesse und Benutzer neu verteilen

File System Cache > 10 % des RAM?

File System Cache reduzieren

SAP-Speicherkonfigurationsmonitor (Transaktionscode ST02): Modusliste

Benutzer mit hohem Speicherverbrauch?

Detailanalyse der Aktionen des Benutzers

2177.book Seite 89 Montag, 10. Juni 2013 11:30 11

Page 42: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

403

Sperren auf Datenbanktabellen oder Geschäftsobjekten sind die Voraussetzung für konsistente Daten. Werden Sperren zu lange gehalten, kann es im System zu Performanceproblemen kommen, da Benutzer und Prozesse auf die Freigabe der Sper-ren warten müssen. Dieses Kapitel stellt detailliert die Sperr-konzepte und deren Überwachung dar.

9 Sperren

In einem SAP-System können viele Benutzer gleichzeitig Inhalte vonDatenbanktabellen lesen. Bei Änderungen des Datenbestands ist esjedoch notwendig, sicherzustellen, dass zu einem bestimmten Zeit-punkt nur genau ein Benutzer einen bestimmten Tabelleninhaltändern kann. Zu diesem Zweck werden Tabelleninhalte während derÄnderung gesperrt. Die Sperrkonzepte von SAP-System und Daten-banksystem werden im ersten Abschnitt dieses Kapitels erklärt.

Werden Sperren lange Zeit gehalten, kann es zu Wartesituationenkommen, die den Durchsatz des SAP-Systems beschränken. Mit allge-meinen Performanceaspekten von Sperren beschäftigt sich der zweiteAbschnitt dieses Kapitels.

Für die Verfügbarkeitsprüfung nach ATP-Logik (Available to Promise)und die Nummernvergabe für Dokumente verwendet das SAP-Sys-tem spezielle Pufferungstechniken, die die Sperrzeit minimieren undden Durchsatz maximieren sollen. Diese Techniken werden im drit-ten und vierten Abschnitt diskutiert.

Wann sollten Sie dieses Kapitel lesen?

Dieses Kapitel sollten Sie lesen:

� um sich über Datenbanksperren und SAP-Sperren (SAP-Enqueues)zu informieren

� wenn Sie in Ihrem SAP-System Probleme mit Datenbanksperrenoder SAP-Enqueues identifiziert haben und diese detaillierter ana-lysieren wollen

2177.book Seite 403 Montag, 10. Juni 2013 11:30 11

Page 43: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

404

Sperren9

Dieses Kapitel ist keine Anleitung zur Entwicklung von SAP-Transak-tionen. Dazu verweisen wir Sie auf ABAP-Lehrbücher oder die SAP-Onlinehilfe.

9.1 Sperrkonzepte von Datenbanksystem und SAP-System

Datenkonsistenz Die Konsistenz der Daten in einem Datenbank- oder SAP-System wirddurch Sperren realisiert. Das SAP-System und das Datenbanksystembieten jeweils eigene Sperrkonzepte an, die zwar beide demselbenZweck dienen (nämlich die Datenkonsistenz zu gewährleisten), aberunterschiedliche technische Realisierungen und Einsatzbereichehaben. Sperren, die vom Datenbanksystem verwaltet werden, heißenDatenbanksperren (Database Locks), die vom SAP-System verwaltetenSperren heißen SAP-Enqueues.

Bestellen eines Computers

Beim Konfigurieren und Bestellen eines neuen Computers muss geprüftwerden, ob alle gewünschten Komponenten zur Verfügung stehen, z. B.Gehäuse, CPU, Hauptspeicher, Festplatte etc. Dabei gilt der Grundsatz»ganz oder gar nicht«, d. h., wenn eine Komponente ausverkauft ist, kanndie Verfügbarkeit des gesamten Rechners nicht bestätigt werden. Wirdnun die Verfügbarkeit der unterschiedlichen Komponenten nacheinandergeprüft, muss für diesen Prüfzeitraum sichergestellt werden, dass andereBenutzer nicht auf die einmal geprüften und bestätigten Komponenten zu-greifen, bis die gesamte Bestellung endgültig bestätigt oder abgebrochenwurde.

9.1.1 Datenbanksperren

Datenbanksperren werden vom Lock Handler der Datenbankinstanzverwaltet. Die gesperrte Einheit ist eine Zeile einer Datenbanktabelle(spezielle Ausnahmen werden am Ende von Abschnitt 9.2.1, »Daten-banksperren« erläutert). Datenbanksperren werden bei allen ändern-den SQL-Anweisungen (UPDATE, INSERT, DELETE) sowie bei derAnweisung SELECT FOR UPDATE gesetzt. Sie werden so lange gehalten,bis mit der SQL-Anweisung COMMIT (Datenbank-Commit) alle Ände-rungen auf der Datenbank für gültig erklärt und dann die Datenbank-sperren gelöst werden. Den Zeitraum zwischen zwei Datenbank-

2177.book Seite 404 Montag, 10. Juni 2013 11:30 11

Page 44: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

405

Sperrkonzepte von Datenbanksystem und SAP-System 9.1

Commits bezeichnet man als Datenbanktransaktion. Alternativ kön-nen alle ändernden SQL-Anweisungen mit der SQL-AnweisungROLLBACK (Datenbank-Rollback) zurückgenommen werden. In diesemFall werden die gehaltenen Datenbanksperren ebenfalls gelöst.

Bestellen eines Computers (Fortsetzung)

Das oben erläuterte Beispiel der Verfügbarkeitsprüfung beim Bestelleneines Computers mithilfe von Datenbanksperren realisieren Sie in der Pro-grammierung mit der SQL-Anweisung SELECT FOR UPDATE: Mit dieser An-weisung wird gleichzeitig der Bestand einer Komponente gelesen und eineSperre auf den entsprechenden Bestand gesetzt. Haben Sie diese Prüfungfür alle Komponenten erfolgreich durchgeführt, ändern Sie anschließendden Bestand (mit einem UPDATE auf die entsprechenden Zeilen) und gebenmit einem COMMIT alle Sperren frei. Während eine Sperre besteht, könnenandere Benutzer die Daten zwar lesen (ein einfaches SELECT ist möglich),nicht aber selbst die Zeile sperren. Es kann also weder ein UPDATE noch einSELECT FOR UPDATE durchgeführt werden. Eine solche Sperre bezeichnetman als exklusiv.

Am Ende eines Transaktionsschrittes löst der SAP-Workprozess auto-matisch einen Datenbank-Commit (oder einen Datenbank-Rollback)aus. Damit werden alle Datenbanksperren gelöst. Daraus ergibt sich,dass Datenbanksperren nicht über mehrere Transaktionsschritte(d. h. im SAP-System über mehrere Eingabebildschirme) hinweggehalten werden können.

9.1.2 SAP-Enqueues

Um Sperren über mehrere Schritte einer SAP-Transaktion hinweg zuhalten, verwenden Sie die SAP-eigene Enqueue-Verwaltung. Die SAP-Enqueues werden vom Enqueue-Workprozess in der Enqueue-Tabelle verwaltet, die sich im Hauptspeicher befindet. Damit SAP-Enqueues auch beim Stoppen der SAP-Instanz erhalten bleiben, wer-den diese zusätzlich in einer lokalen Datei auf dem Enqueue-Servergesichert.

SAP-Enqueue-Objekte

Durch einen SAP-Enqueue wird ein logisches Objekt gesperrt. Sokönnen z. B. Zeilen aus mehreren Datenbanktabellen gesperrt wer-den, die zusammen einen Beleg bilden. Ein SAP-Enqueue kann aucheine oder mehrere Tabellen sperren. SAP-Enqueue-Objekte werdenim ABAP Dictionary (Abschnitt Sperrobjekte) angelegt und geändert.Sie hängen eng mit den Begriffen SAP-Transaktion und SAP Logical

2177.book Seite 405 Montag, 10. Juni 2013 11:30 11

Page 45: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

406

Sperren9

Unit of Work (SAP LUW) zusammen. Zu beiden Begriffen finden Sieumfangreiche Dokumentationen in der ABAP-Literatur zur Dialog-programmierung. Die Funktionsweise und Anwendung dieser Tech-niken innerhalb von ABAP-Programmen wird daher an dieser Stellenicht erläutert. Es soll genügen, hier die für eine Performanceanalyserelevanten Aspekte darzustellen. Werden Performanceprobleme auf-grund eines fehlerhaften Einsatzes von SAP-Enqueues entdeckt, mussin jedem Fall der zuständige ABAP-Entwickler hinzugezogen werden.

Ein SAP-Enqueue ist eine logische Sperre innerhalb des SAP-Systems.Eine direkt auf der Datenbank ausgeführte SQL-Anweisung oder einkundeneigenes ABAP-Programm, das sich nicht an die SAP-Enqueue-Konventionen hält, kann eine Tabellenzeile in der Datenbank ändern,obwohl diese Zeile im SAP-System durch einen SAP-Enqueuegesperrt ist. SAP-Enqueues gelten also nur innerhalb des SAP-Sys-tems. Datenbanksperren dagegen sind für alle Zugriffe wirksam. Siesperren eine Tabellenzeile »hart« für alle Datenbankbenutzer, alsoauch für solche außerhalb des SAP-Systems.

Funktions-bausteine

Zu jedem aktivierten SAP-Enqueue-Objekt existieren zwei Funktions-bausteine: ein Enqueue-Baustein und ein Dequeue-Baustein. Ein SAP-Enqueue wird innerhalb eines ABAP-Programms explizit durch denAufruf des zugehörigen Enqueue-Bausteins gesetzt und explizit durchden entsprechenden Dequeue-Baustein freigegeben. SAP-Enqueueskönnen damit über mehrere Transaktionsschritte gehalten werden.Alle SAP-Enqueues werden allerdings automatisch bei Beendigungeiner SAP-Transaktion freigegeben.

Bestellen eines Computers (Fortsetzung)

Anhand unseres Beispiels der Rechnerkonfiguration und -bestellung erläu-tern wir die Funktionsweise der SAP-Enqueue-Verwaltung: Zum Rechnergehören z. B. Gehäuse, CPU, Hauptspeicher und Festplatte. Die einzelnenKomponenten werden auf unterschiedlichen Eingabebildschirmen, d. h.mit mehreren Transaktionsschritten, bearbeitet und zur Bearbeitung durchSAP-Enqueues gesperrt. Nachdem sichergestellt ist, dass jede Kompo-nente einzeln reserviert werden kann, wird die Bestellung des Computersbestätigt. Damit ist der Dialogteil der Transaktion abgeschlossen.

Ein Verbuchungs-Workprozess führt anschließend unter dem Schutz derSAP-Enqueues die notwendigen Änderungen der Datenbanktabellen aus.Erst nachdem der Verbuchungs-Workprozess seine Arbeit beendet hat, istdie SAP LUW abgeschlossen, und die SAP-Enqueues werden wieder frei-gegeben.

2177.book Seite 406 Montag, 10. Juni 2013 11:30 11

Page 46: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

407

Überwachung von Sperren 9.2

Zu einer SAP LUW gehören eventuell noch Bausteine, die in der V2-Verbuchung bearbeitet werden. Dieses erfolgt ohne SAP-Enqueues.In Bausteinen, die V2-verbuchbar sind, dürfen also nur Informatio-nen bearbeitet werden, die nicht des Schutzes durch SAP-Enqueuesbedürfen (siehe auch Abschnitt 7.1.8, »Verbuchung«).

Die wichtigsten Eigenschaften von Datenbanksperren und SAP-Enqueues fasst Tabelle 9.1 zusammen.

9.2 Überwachung von Sperren

In diesem Abschnitt geben wir Ihnen Hinweise zur Überwachungvon Datenbanksperren und SAP-Enqueues.

DB-Sperren (Locks) SAP-Sperren (Enqueues)

Gesperrtes Objekt

� einzelne Zeile einer Datenbanktabelle

� logisches Objekt (z. B. ein Beleg)

� definiert im ABAP Dictionary

Sperre wird gesetzt

implizit durch ändernde SQL-Anweisungen (z. B. UPDATE) und SELECT FOR UPDATE

explizit durch Aufruf eines Enqueue-Bausteins im ABAP-Programm

Sperre wird frei-gegeben

� implizit durch SQL-Anweisung COMMIT bzw. ROLLBACK

� grundsätzlich am Ende eines Transaktionsschrit-tes

� explizit durch Aufruf eines Dequeue-Bausteins

� grundsätzlich am Ende einer SAP-Transaktion

Maximale Haltedauer

� Länge eines Transaktions-schrittes

über mehrere Transaktions-schritte hinweg

Verhalten bei Sperr-konflikt

Wartesituation (Exclusive Lockwait, siehe auch Abschnitt 9.2.1, »Daten-banksperren«)

programmabhängig, z. B. Fehlermeldung »Material X ist gesperrt«

Über-wachung

Transaktionscode DB01, Exclusive Lockwaits

Transaktionscode SM12, Sperrverwaltung

Tabelle 9.1 Eigenschaften von Datenbanksperren und SAP-Enqueues

2177.book Seite 407 Montag, 10. Juni 2013 11:30 11

Page 47: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

408

Sperren9

9.2.1 Datenbanksperren

ExclusiveLockwaits

Was geschieht bei einem Sperrkonflikt, d. h., wenn ein Workprozessein Objekt sperren will, das bereits gesperrt ist? Bei Datenbanksper-ren wartet der zweite Prozess so lange, bis der Halter der Sperre diesewieder freigegeben hat. Diese Wartesituation bezeichnet man alsExclusive Lockwait. Bei den meisten Datenbanken gibt es keine zeitli-che Beschränkung für diese Sperre. Wird die Sperre durch ein fehler-haftes Verhalten des Programms nicht wieder freigegeben, kann dieWartesituation ad infinitum bestehen.

Zu einer Eskalation kann es kommen, wenn ein Programm eine für dasSAP-System »lebenswichtige« Sperre (z.B. auf die Nummernkreis-tabelle NRIV) hält und nicht wieder freigibt. In diesem Fall besteht dieGefahr, dass ein Workprozess nach dem anderen auf diese Sperre war-tet. Sind schließlich alle Workprozesse belegt, besteht schließlich ausdem SAP-Systems heraus keine Möglichkeit des Eingreifens mehr. Esbleibt als letzte Alternative nur noch, mit Mitteln des Betriebssystemsden fehlerhaften Prozess abzubrechen (sofern er dann noch ermitteltwerden kann).

Sperrwarte-situation prüfen

Die aktuellen Sperrwartesituationen werden im Datenbank-Sperrmo-nitor (Transaktionscode DB01) angezeigt, den Sie im DBA-Cockpit(Transaktionscode DBACOCKPIT) über Performance � Wartesitua-

tionen auf Sperren und Deadlocks oder in der globalen Workpro-zess-Übersicht (Transaktionscode SM66) über Springen � DB Locks

starten können.

Die Beschreibung dieses Monitors und Hinweise, wie Sie bei Sperr-wartesituationen vorgehen können, finden Sie in Abschnitt 2.3.5,»Weitere Analysen auf Datenbankebene«. Sperrwartesituationen tra-gen zur Datenbankzeit bei und führen in den Statistiken des Work-load-Monitors zu einer erhöhten Datenbankzeit. Von einigen Daten-banksystemen werden Sperrwartezeiten explizit aufgezeichnet undim Datenbankmonitor angezeigt.

Sperrsituation auf der Datenbank

Mit dem folgenden Beispielprogramm können Sie eine Sperrsituation aufder Datenbank provozieren:REPORT zts_lock.

DATA: lv_text type natxt.

SELECT SINGLE FOR UPDATE text FROM T100 INTO lv_text WHERE sprsl

2177.book Seite 408 Montag, 10. Juni 2013 11:30 11

Page 48: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

409

Überwachung von Sperren 9.2

= 'DE' AND ARBGB = '00' AND msgnr = '001'.

BREAK-POINT.

Gehen Sie dazu wie folgt vor:

1. Starten Sie das Programm in der ABAP Workbench (z. B. über Transak-tionscode SE38). Nach wenigen Sekunden startet der Debugger, dasProgramm hält am Befehl BREAK-POINT an. Zuvor hat das Programm mitdem Befehl SELECT SINGLE FOR UPDATE eine Datenbanksperre gesetzt.Da das Programm im Debug-Modus wartet, wird diese Datenbank-sperre nicht zurückgenommen.

2. Starten Sie nun in einem zweiten Modus das Programm erneut. Imzweiten Modus wird Ihnen die Sanduhr angezeigt.

3. Sie können das Programm erneut in einem dritten Modus starten, eswird Ihnen wiederum die Sanduhr angezeigt.

4. Starten Sie in einem weiteren Modus den Datenbanksperrmonitor, wiezuvor beschrieben. Die Sperrsituation wird angezeigt, und Sie könnenerkennen, welcher Workprozess die Sperre hält und welcher wartet.Mithilfe der Workprozess-Übersicht (Transaktionscode SM50) und desDatenbankprozessmonitors können Sie nun analysieren, was der Pro-zess, der die Sperre hält, tut. In unserem Beispiel finden Sie als Status inder Prozessübersicht hält und als Grund Debug.

5. Gehen Sie nun in den Debugger, und führen Sie dort die Ausführung desProgramms im ersten Modus fort. Das Programm wird beendet, dieDatenbanksperre wird durch ein implizites Commit oder Rollback derDatenbankschnittstelle abgeräumt, und damit kann das Programm imzweiten Modus, das bisher beim Befehl SELECT SINGLE FOR UPDATE war-tete, fortfahren. Es wird also innerhalb kürzester Zeit ebenfalls denBefehl BREAK-POINT erreichen und den Debugger starten.

6. Setzen Sie auch im zweiten und, falls Sie das Programm in weiterenModi gestartet haben, auch in diesen das Programm im Debugger fort,um die Sperren freizugeben.

Typische ProblemeGrundsätzlich müssen Sie in Programmen darauf achten, dass Sper-ren möglichst spät angefordert werden. Es ist also besser, zunächstalle benötigten Informationen von der Datenbank zu lesen und zubearbeiten, bevor Änderungen in der Datenbank vorgenommen undSperren gesetzt werden. In Abbildung 9.1 ist dies schematisch darge-stellt: Im oberen Teil der Abbildung werden während einer Daten-banktransaktion mehrere Änderungen auf der Datenbank vorgenom-men und damit Datenbanksperren unnötig lange gehalten. Deruntere Teil der Abbildung zeigt die elegantere Art der Programmie-rung: Während der Datenbanktransaktion werden die Änderungenin einer internen Tabelle gesammelt und erst zum Ende der Transak-

2177.book Seite 409 Montag, 10. Juni 2013 11:30 11

Page 49: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

410

Sperren9

tion gebündelt in der Datenbank ausgeführt. Folglich verkürzt sichdie Sperrzeit auf der Datenbank.

Ursachen Eine Ursache von Sperrproblemen, die in SAP-Systemen immer wie-der beobachtet wird, sind Kundenmodifikationen von Verbuchungs-bausteinen. Die Trennung von Dialog- und Verbuchungsverarbeitungbringt den Vorteil mit sich, dass im Dialogteil einer Transaktion nurwenige Änderungen auf der Datenbank vorgenommen und damitauch nur wenige Sperren gesetzt werden. Vielmehr werden diese imVerbuchungsteil der Transaktion konzentriert. Mitunter werden Ver-buchungsbausteine modifiziert, um z. B. eine kundeneigene Schnitt-stelle mit Daten zu versorgen. Wird diese Modifikation durchlaufen,nachdem bereits Sperren gesetzt wurden, und ist diese Modifikationinperformant, weil sie z. B. eine lang laufende SQL-Anweisung ent-hält, kommt es zu massiven Sperrproblemen in der Verbuchungsver-arbeitung.

Eine zweite Quelle von Sperrproblemen sind Hintergrundpro-gramme, die eine Sperre anfordern und dann mehrere Stunden arbei-ten, ohne ein Datenbank-Commit auszulösen. Sollen die gesperrtenObjekte ebenfalls von Dialogtransaktionen bearbeitet werden, müs-sen diese warten, bis das Hintergrundprogramm beendet ist oder einCommit auslöst. Eine Lösung für dieses Problem kann es sein, das

Abbildung 9.1 Sperren sollen möglichst spät gesetzt werden.

ABAP

A)

ABAP

Datenbanksperren

Datenbank

Datenbank

Datenbanksperren

DB LUW

APPEND TO <internal table>SORT <internal table>UPDATE FROM<internal table>COMMIT

B)

COMMITEinzelne Updates

2177.book Seite 410 Montag, 10. Juni 2013 11:30 11

Page 50: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

411

Überwachung von Sperren 9.2

Hintergrundprogramm in regelmäßigen Abständen ein Commit aus-lösen zu lassen (wenn dies vom Standpunkt der Datenkonsistenzmöglich ist) oder es nur zu Zeiten einzuplanen, in denen es den Dia-logbetrieb nicht stört. Ähnliche Probleme treten bei der Parallelisie-rung von Hintergrundläufen auf, d. h., wenn dasselbe Programmmehrfach parallel gestartet wird. Diese Parallelisierung macht jedochnur dann Sinn, wenn die Selektionsbedingungen so gewählt werden,dass sich die parallel laufenden Programme nicht gegenseitig dieDaten sperren.

Deadlocks

Während Sie sich im ABAP Debugger befinden, wird in der Regel kein Da-tenbank-Commit ausgelöst, d. h., alle Datenbanksperren bleiben beste-hen, bis Sie den Debugger wieder verlassen. Vermeiden Sie es daher, ineinem produktiven SAP-System mit dem Debugger zu arbeiten.

Im Folgenden beschreiben wir ein Beispiel für eine Situation, die man alsDeadlock bezeichnet. Nehmen wir an, die Workprozesse 1 und 2 wollenjeweils eine Liste von Materialien sperren. Workprozess 1 sperrt MaterialA und Workprozess 2 Material B. Anschließend fordert Workprozess 1 eineSperre auf Material B an, Workprozess 2 eine Sperre auf Material A. BeideWorkprozesse können die angeforderten Sperren nicht bekommen, dadiese vom jeweils anderen gehalten werden. Es entsteht also eine Situa-tion, in der sich beide Prozesse gegenseitig blockieren. Solche Deadlockswerden von der Datenbankinstanz automatisch erkannt und aufgelöst,indem einem der beiden Workprozesse eine Fehlermeldung zurückgege-ben wird. Diese führt dann zum Abbruch des ABAP-Programms und wirdim SAP-Syslog protokolliert.

Deadlocks können durch geschickte Programmierung leicht vermiedenwerden. Wird in unserem Beispiel das Programm so geändert, dass die Ma-terialliste vor dem Sperren sortiert wird, wird immer zuerst Material A ge-sperrt und erst, wenn dies erfolgreich war, Material B. Damit ist ein Dead-lock ausgeschlossen.

Deadlock-Situationen sollten die absolute Ausnahme sein. Treten diesevermehrt auf, deutet dies auf einen Fehler im Programm oder in der Kon-figuration der Datenbankinstanz hin.

TabellensperrenVon einigen Datenbanksystemen (z. B. DB2 und SAP MaxDB) werdenin gewissen seltenen Fällen Einzelsatzsperren automatisch zu Tabel-lensperren zusammengefasst, wenn die Anzahl der gesperrten Zeileneiner Tabelle eine gewisse Quote im Verhältnis zur Gesamtzahl vonZeilen in der Tabelle (z. B. 10 %) überschreitet. In diesem Fall ent-scheiden diese Datenbankensysteme, dass es günstiger ist, die

2177.book Seite 411 Montag, 10. Juni 2013 11:30 11

Page 51: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

412

Sperren9

gesamte Tabelle für einen Workprozess zu sperren, anstatt viele Sper-ren auf einzelne Zeilen zu verwalten. Praktische Konsequenzen hatdieses Verhalten z. B. für die Parallelisierung von Programmen, dieeine gesamte Tabelle ändern sollen. Es ist nicht möglich, Hinter-grundjobs so einzuplanen, dass z. B. der eine die erste Hälfte derTabelle aktualisiert und der zweite gleichzeitig die andere Hälfte, dadie Datenbank nach kurzer Zeit die Tabelle exklusiv für einen derJobs sperren wird. Betroffen von dieser Einschränkung ist z. B. derPeriodenverschieber in der Materialwirtschaft.

Tabellensperren

Durch Datenbankparameter können Sie beeinflussen, wann Einzelsatz-sperren automatisch zu Tabellensperren zusammengefasst werden.

Ganze Tabellen werden auch aus administrativen Gründen gesperrt, z. B.beim Anlegen von Indizes und bei bestimmten Tabellen- oder Indexanaly-sen der Datenbank (z. B. VALIDATE STRUCTURE bei Oracle). Werden dieseOperationen im produktiven Betrieb durchgeführt, können daraus massivePerformanceprobleme resultieren.

9.2.2 SAP-Enqueues

Die SAP-Enqueues werden in der Enqueue-Tabelle verwaltet, die sichim globalen Hauptspeicher des Enqueue-Servers befindet. Die Work-prozesse des Enqueue-Servers greifen direkt auf die Enqueue-Tabellezu, Workprozesse anderer Applikationsserver lassen ihre Sperropera-tionen vom Enqueue-Workprozess durchführen, wobei sie über denMessage-Service miteinander kommunizieren (1, 2 in Abbildung9.2). In Abbildung 9.2 werden folgende Abkürzungen verwendet:DIA: Dialog-Workprozess; ENQ: Enqueue-Workprozess; ENQ-Tab:Enqueue-Tabelle.

Abbildung 9.2 Kommunikation beim Setzen und Freigeben von SAP-Enqueues

Dispatcher

DIADIADIA ENQ

Instanz B

Dispatcher

DIADIADIA

ENQ-Tab

Message-Server

Instanz A (Enqueue-Server)

2177.book Seite 412 Montag, 10. Juni 2013 11:30 11

Page 52: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

413

Überwachung von Sperren 9.2

Das Setzen und Freigeben von Sperren dauert bei Workprozessen desEnqueue-Servers weniger als eine Millisekunde, bei Workprozessenanderer Applikationsserver weniger als 100 Millisekunden.

Performance-probleme mit SAP-Enqueues

Wird ein SAP-Enqueue angefordert, der schon von einem anderenBenutzer gehalten wird, wird der Versuch, die Sperre zu setzen,zurückgewiesen und die Kontrolle mit einer entsprechenden Fehler-meldung an das ABAP-Programm zurückgegeben. Es steht nun demAnwendungsentwickler frei, diese Fehlermeldung im Programm zubehandeln. Bei Programmen im Dialogbetrieb wird in der Regel dieentsprechende Fehlermeldung an den Benutzer weitergereicht, z. B.mit der Nachricht »Material X gesperrt durch Benutzer Y«. In Hinter-grundprogrammen wird dann zu einem späteren Zeitpunkt erneutversucht, die Sperre zu setzen. Nach einer gewissen Anzahl erfolglo-ser Versuche wird eine entsprechende Fehlermeldung in das Proto-koll des Programms geschrieben.

Performanceprobleme aufgrund von (zu) lang gehaltenen SAP-Enqueues ergeben sich aus der Tatsache, dass der Benutzer nacheinem erfolglosen Versuch seine Eingabe wiederholen wird. Nehmenwir z. B. an, dass er eine Materialliste bearbeiten und dazu 100 SAP-Enqueues setzen müsse. Schlägt der Versuch beim 99. Enqueue fehlund bricht das Programm mit der Meldung »Material Nummer 99 istgesperrt« ab, war die gesamte zuvor vom System geleistete Arbeitvergebens und muss wiederholt werden. Fehlgeschlagene Anforde-rungen von Enqueues führen also zu erhöhter Last auf dem Systemund begrenzen den Durchsatz von Transaktionen.

Eine Übersicht über alle zurzeit aktiven SAP-Enqueues gibt IhnenTransaktion SM12 über den Pfad:

Werkzeuge � Administration � Monitor � Sperreinträge

Zur Fehlerdiagnose starten Sie die folgenden Testprogramme:

Zusätze � Diagnose bzw. Zusätze � Diagnose in VB

Werden Fehler gemeldet, suchen Sie im SAP Service Marketplace derSAP nach Hinweisen oder wenden sich direkt an SAP.

Enqueue-StatistikÜber die Menüoption Zusätze � Statistik gelangen Sie in eine Statis-tik zur Aktivität des Enqueue-Services. Die ersten drei Werte zeigendie Anzahl der Enqueue-Anforderungen, die Anzahl der erfolglosenAnforderungen (erfolglos, weil der angeforderte Enqueue bereits

2177.book Seite 413 Montag, 10. Juni 2013 11:30 11

Page 53: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

414

Sperren9

anderweitig gehalten wurde) und die Anzahl der Fehler bei Enqueue-Anforderungen. Dabei sollte der Anteil der erfolglosen Anforderun-gen nicht mehr als 1 % der gesamten Anforderungen ausmachen.Fehler sollten überhaupt nicht auftreten.

9.3 Nummernkreispufferung

Bei vielen Datenstrukturen ist es erforderlich, auf die einzelnenDatenbanksätze gezielt zugreifen zu können. Dies wird mit eindeuti-gen Schlüsseln realisiert. Nummernkreise dienen dazu, einzelnenDatensätzen zu einem betriebswirtschaftlichen Objekt Nummern zurVervollständigung des Schlüssels zuzuweisen. Solche Nummern sindz. B. Auftragsnummern oder Materialstammnummern. Mit der SAP-Nummernkreisverwaltung wird der Nummernstand überwacht,sodass bereits vergebene Nummern nicht erneut verteilt werden.

9.3.1 Grundlagen

Ein betriebswirtschaftliches Objekt, für das über die NummernkreiseTeilschlüssel gebildet werden sollen, wird als Nummernkreisobjekt imSAP-System definiert. Ein Nummernkreis enthält ein Nummern-kreisintervall mit definiertem Zeichenvorrat. Das Nummernkreis-intervall besteht aus Zahlen oder alphanumerischen Zeichen undwird begrenzt durch die Felder Von-Nummer und Bis-Nummer. Ei-nem Nummernkreis werden ein oder mehrere Intervalle zugeordnet.

TechnischeRealisierung

Der aktuelle Nummernkreisstand eines Nummernkreises, d. h. dieNummer, die als nächste vergeben wird, wird in der Datenbank-tabelle NRIV verwaltet. Benötigt ein Programm eine Nummer (z. B.aus dem Nummernkreis MATBELEG), führt es die folgenden Schrittedurch:

1. Das Programm liest den aktuellen Nummernkreisstand von derTabelle NRIV und sperrt gleichzeitig den Nummernkreis MATBELEG.Dazu setzt es eine Datenbanksperre mit der SQL-AnweisungSELECT FOR UPDATE auf die Zeile der Tabelle NRIV, die den Num-mernkreis MATBELEG verwaltet.

2177.book Seite 414 Montag, 10. Juni 2013 11:30 11

Page 54: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

859

Index

64-Bit 28364-Bit-Architektur 297

A

ABAP 490, 492, 829ABAP Class Builder 583ABAP Debugger 189, 218, 235ABAP Dictionary 109, 504, 529, 549,

581, 829Anzeige 820Pflege 820Tabelle 820

ABAP Editor 311, 539, 820ABAP Objects 583ABAP Shared Objects 307ABAP Webservices 394ABAP Workbench 225, 409, 541, 820ABAP-Applikationsinstanz 76, 277ABAP-Instanz 363ABAP-Klassenbibliothek 820ABAP-Laufzeitanalyse 208, 211, 235,

521ABAP-Laufzeitanalyse, Web-Dynpro-

Anwendungen 210, 397ABAP-Laufzeitfehler 821ABAP-Programm 521, 527

Laufzeitanalyse 194Qualitätsanalyse 225

ABAP-Programmabbruch 306ABAP-Server 151, 159ABAP-Trace 66, 189, 208

Einzeltransaktionsanalyse 217Summary 216Varianten 213

ABAP-Webservice 394ACID-Prinzipien 829Activation Queue 758Active Data 758Active Session History 101Adaptive Computing Controller 270Address Space 282Administrationswerkzeug, Daten-

bank 543Adressraum 829

Agent 178, 787, 789Agent Private Memory 787Aggregat 491, 637, 644, 688, 695,

718anlegen 640Funktion 522Indizierung 645komprimieren 646Pflege 645Vorschlag 642

Aggregierung 213Ähnlichkeitsmaß 656Aktionsprofil 180Aktivität � DurchsatzALE 829ALE-Administration 819Alert 138Alert, automatischer 144Alert-Monitor 829Alert-Server 658, 663, 675Allocation Analysis 448Allocation Trace 482Allokationsrate 454ALV Control 368American National Standards

Institute 829Analyse

linguistische 656, 700logische 62technische 62

Analysemethode 137analytische Anwendung 594Änderung, logische 169Änderungs- und Transportsystem 560Änderungsauftrag 560Änderungslauf 647, 693Anfrage, analytische 709Anmeldegruppe 277, 324, 348Anmeldegruppe, Pflege 821Anmeldegruppen-Monitor 319ANSI 829Antwortzeit 55, 149, 161, 190, 322,

769Antwortzeit, mittlere 175Antwortzeitverteilung 181

2177.book Seite 859 Montag, 10. Juni 2013 11:30 11

Page 55: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

860

Index

Anwendungsanalyse 149, 821Anwendungsmonitor 821Anwendungspuffer

objektorientierte 292, 549, 580, 589Anwendungsserver � Applikations-

serverAnzeigeattribut 602APO-Server 272Appliance 700Application Link Enabling 829Application Service Providing (ASP)

25Application Support Layer 787Applikationsanalyse 149, 821Applikationsebene 38Applikationsfehler 308Applikationsoptimierung 20Applikationsserver 41, 76, 159, 201,

829Applikationstuning 31, 63Archiver Stuck 110, 169Array Fetch 199ATP-Logik 403, 421ATP-Server 320, 421, 422, 424ATP-Service 274Attribut 595, 608

Anzeigeattribut 602Navigationsattribut 602

Attributindex 44Attributvektor 705, 714Ausführungsplan 496, 741, 769, 829

DB2 für IBM i 800IBM DB2 für z/OS 805Microsoft SQL Server 816Oracle 809

Auslagerungsspeicher 81, 118, 282, 295, 297, 299, 313, 829

Automatic Workload Repository 101Autoreaktionsmethode 144Auxiliary Storage Pool 295

B

B*-Baum 624Backup 49, 54Backup-Index-Server 679Bandbreite 711BAPI 829Batch-Input 240, 829

Benchmark 253, 256, 839Benutzer

aktiver 164gelegentlicher 164Power-Benutzer 165Sachbearbeiter 165

Benutzeranbindung 37Benutzerkontext 158, 284, 358, 829Benutzerliste 820Benutzermodus

Experte 153Service Engineer 154

Benutzeroberfläche, grafische 832Benutzerprofil 165, 180Benutzerübersicht 342Beschränkungen des Betriebs-

systems 297Bestand 595Betriebsart 329, 820, 830Betriebssystem 313

Auslagerungsspeicher 305Grenze 309Kommando 820Konfigurationsparameter 306Paging 284Parameter 87

Betriebssystem (Operating System) 281, 835

Betriebssystemdatei 819Betriebssystemmonitor 66, 77, 86,

196, 260, 374, 795, 821Betriebssystemmonitor, Prozess-

übersicht 126Betriebssystemprozess 83Betriebszeit 53Bewegungsdaten 562BEx Analyzer 380, 598BEx Web Analyzer 598bgRFC-Monitor 357Big Data 24, 699binäre Suche 714, 770Blade-Server 700Blatt 624Block 92Browser 830Bruttozeitoptimierung 218BSP-Anwendungen, Laufzeitanalyse

210, 397BSP-Entwicklung 391

2177.book Seite 860 Montag, 10. Juni 2013 11:30 11

Page 56: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

861

Index

Buffer Get 489Buffer Pool 787Buffer Trace 194Business Application Programming

Interface � BAPIBusiness Connector 830Business Objects 830Business Process 47Business Server Page (BSP) 39, 367,

377, 388BW Administrator Workbench 612,

625, 628, 643, 689, 819BW Query Monitor 819BW Query � BW-AnfrageBWA � SAP NetWeaver BW Accelera-

torBW-Aggregatpflege 819BWA-Index 689

pflegen 691prüfen und abschalten 690

BW-Anfrage 594, 597Analyse 613Hintergrunddruck 635

BW-Prüfreport 819BW-Statistik 615, 691BW-Workload-Statistik 613

C

CA Wily Introscope 66, 478, 483, 847Enterprise Manager 479WebView 479Workstation 479

Cache � PufferCalc Engine 721CALL-Befehl 284Catalog Cache 772, 787CBO 500CCMS 30, 35, 65, 135, 508, 830

Alert 139Monitoring 135Monitoring-Baum 141System Component Repository (SCR)

179Überwachungsmonitor 137, 348

Change 566, 575Change and Transport Organizing

830Change Log 758

Change Run 647, 693charakterisierender Parameter 151Checkpoint 93Check-Set 664Class Statistic 482Classloader 434CLEAR-Anweisung 222Client-Destination-Statistiksatz 352Client-Server-Architektur 38Client-Server-Architektur, Skalier-

barkeit 46Client-Statistiksatz 351Cloud-Anwendung 698Cluster-Coding 707Clustered Index 816CO 830Code Cache 440Code Completion 741Code Inspector 189, 225, 235, 556,

740Code Push-down 695, 718Column Store � spaltenorientierte

DatenspeicherungCommon Programming Interface

Communication 830Computer Center Management System

� CCMSCOM-Routine � Database ProcedureConcurrent-Mark-Sweep-Kollektor

437Connection View 446Container 90Control 367CO-PA Accelerator 698Core 80, 783Cost-Based Optimizer (CBO) 500CPI-C 830CPU 46, 80, 830

Auslastung 79, 83, 108, 261Bedarf 256, 363Belastung 170Engpass 81, 85, 108, 169Ressourcen 321Sizing 724Trace 208Wartezeit 323Zeit 161, 163, 166, 172, 193, 322

CTO 830Cursor 200

2177.book Seite 861 Montag, 10. Juni 2013 11:30 11

Page 57: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

862

Index

Cursor Cache 282Cursor-ID 200Customer Interaction Center 221Customizing 830Customizing Organizer 830Customizing-Daten 562

D

Data Buffer 92Data Cache 92, 772, 814Data Control Language (Datenkontroll-

sprache) 831Data Definition Language (Daten-

definitionssprache) 831Data Manipulation Language (Daten-

manipulationssprache) 831Data Mining 594, 700Data Warehouse 595Database Analyzer 778Database Global Memory 787Database Heap 787Database Lock � DatenbanksperreDatabase Procedure 160Database Procedure Calls 160Database Procedure Subrecord 160Database-Procedure-Zeit 160DataStore-Objekt 595, 608

HANA-optimiertes 756, 758indizieren 627

Dateioperation 464Datenarchivierung 830Datenbank 76, 830

Administration 111Analyse 75, 89, 768Fehlerprotokolldatei 107, 792Last 525Puffer 769Stillstand 109Tasks 773

Datenbankadministrator-Cockpit � DBA-Cockpit

Datenbankanfrage, Parallelisierung 702

Datenbankebene 40Datenbankindex, fehlender 109Datenbankinstanz 76, 303, 830Datenbankkonsolidierung 267, 271Datenbanklast 761

Datenbankmonitor 66, 90, 120, 408, 767

Datenbankobjekt, fehlendes 819Datenbankoperation 199Datenbankoptimierer 108, 496, 499,

517, 741, 829, 831Datenbankoptimierer, kostenbasierter

(CBO) 108Datenbankperformance, Problem 171Datenbankperformancemonitor 91,

821Datenbankprozess 83, 736Datenbankprozessmonitor 97, 126,

196, 475, 483, 773, 783, 797, 804, 815

Datenbankprozessor 107Datenbankpuffer 92, 702Datenbankserver 40, 76, 831Datenbankservice 363Datenbanksperre 105, 404, 406, 408,

475, 791, 831exklusive 106IBM DB2 für z/OS 805SAP MaxDB 777SQL Server 815

Datenbanksperrmonitor 126, 408Datenbanksystem 76, 404, 830Datenbanksystem, paralleles 77Datenbanktabelle 593Datenbanktuning 30Datenbank-View 535, 696, 771, 780,

786, 794, 801, 807, 811, 817Datenbankzeit 159, 166, 171, 172Datenbankzeit, lange 127Datenbankzugriff 190Datenbankzugriff, voll qualifizierter

199Datenfile 90Datenhaltung

dezentrale 679zentrale 679

Datenlokalität 712Datenmenge, übertragene 370Datenmodellierung, SAP HANA 716,

721Datenpaket 646Datenpuffer 94, 772, 787, 803, 814Daten-Volume 777DB2 � IBM DB2

2177.book Seite 862 Montag, 10. Juni 2013 11:30 11

Page 58: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

863

Index

DBA 831DBA-Cockpit 91, 126, 408, 505, 507,

725, 767, 772, 796DBA-Planungskalender 507DBA-Protokoll 819DCL 831DDL 831Deadlock 411, 831Debuggen 219Debugger 441Default Data Cache 781Dekomposition 662Dekomposition, vertikale 662DELETE-Anweisung 222Deltaindex 673, 676, 692, 708, 746,

749aktivieren 677integrieren 678

demilitarisierte Zone (DMZ) 41, 276Denkzeit 322Deoptimierung 441Dequeue-Baustein 406Destination 340, 344Development Workbench 35DIAG-Protokoll 831Dialog Step � TransaktionsschrittDialogantwortzeit 336Dialogbenutzer 240, 329Dialoglast 168Dialogservice 274, 319, 320Dialog-Workprozess 158, 331, 358,

831Dictionary 714Dictionary-Coding 705Differenz-Coding 708Dimensions-ID (DIMID) 599Dimensionstabelle 599Dimensionstabelle, Index 625Direct Read 199, 770, 779, 785, 800,

806direktes Lesen � Direct ReadDisk Read 489disp+work 274Dispatcher 319, 831Dispatcher-Prozess 273Dispatcher-Queue 132, 157Dispatcher-Wartezeit 157, 166, 172,

323Dispatching 274

Distributed Statistic Record � Statistiksatz, verteilter

Distributed Statistics Records (DSR) 177

DML 831Dokumentation 63Dominator Tree 472Drill-down 596DSWP 232Dual-Stack-Installation 272Dump 305Durchsatz 163, 174, 403dynamische Benutzerverteilung 277,

324Dynamischer Statement Cache 803Dynpro 831

E

E2E-Trace � End-to-End-TraceEarlyWatch Alert � SAP EarlyWatch

AlertEasy Web Transaction 392, 832eCATT 831Eclipse 831Eden 433, 436EDI 831EDM DSC Cache 804EDM-Pool 804E-Faktentabelle 630Einführungsleitfaden 632Einheitendimension 605Einkernprozessor 80Einzelsatz, statistischer 150, 189, 234Einzelsatzpuffer 549, 551Einzelsatzstatistik 66, 189, 343, 362,

371, 397, 613, 821Einzelsatzstatistik, zentrale 179, 226Einzeltransaktionsanalyse 215Electronic Data Interchange 831Embedded Search 654End User Experience Monitoring 55,

387End-to-End-Diagnostik 70End-to-End-Laufzeitanalyse 229, 232,

235SAP-GUI-Transaktion 231

End-to-End-Trace 214, 381, 476End-to-End-Workload-Analyse 183

2177.book Seite 863 Montag, 10. Juni 2013 11:30 11

Page 59: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

864

Index

Engpassanalyse 149, 323Enqueue 404, 831Enqueue-Baustein 406Enqueue-Operation 194Enqueue-Server 318Enqueue-Service 274, 318, 320Enqueue-Tabelle 412Enqueue-Trace 194, 207Enterprise File Search (EFS) 654Enterprise JavaBeans 40Entität 832Entwicklerprotokoll 310Entwickler-Trace 821Ereignisdaten 700erweiterter Speicherbereich (EM) 308Eskalationsverfahren 57ETL-Prozess 599Event 389EWT 832Exclusive Lockwait 105, 113, 133,

147, 408, 427, 805, 815Execution Plan � AusführungsplanExecutive Information System (EIS)

593Expertenmonitor 65Export-Import-Puffer 423, 550, 581Export-Import-SHM-Puffer 307, 550,

581Extended Global (EG) Memory 291Extended Memory 309, 832Extensible Markup Language 841Extrahieren 599

F

Failover Recovery 270Failover-Lösung 320Faktentabelle 599, 646

Index 625komprimieren 629, 692SAP HANA 756

FDDI 832FE Net Time 370Fehlerbehebung 56Fehlercode

DBIF_RSQL_NO_MEMORY 312EXPORT_NO_SHARED_MEMORY

307

Fehlercode (Forts.)EXSORT_NOT_ENOUGH_MEMORY

312PXA_NO_SHARED_MEMORY 306SET_PARAMETER_MEMORY_OVER-

FLOW 307STORAGE_PARAMETERS_WRONG_

SET 306, 309, 312SYSTEM_NO_MORE_PAGING 293SYSTEM_NO_ROLL 307TSV_TNEW_PAGE_ALLOC_FAILED

306TSV_TNEW_PG_CREATE_FAILED

293Festplatte 711Festplatte, Zugriff 777, 816Fetch-Operation 199, 531, 566F-Faktentabelle 630Fiber Distributed Data Interchange

832File System Cache 85File- und Network-I/O-Analysis 464Files-Statistik 464Firewall 832Flow 595Fluss 595FOR ALL ENTRIES 531, 534Fragmentierung 576, 585FREE-Anweisung 222Frontend, Trace 229Frontend-Zeit 370Full Table Scan 497, 503, 512, 623,

770Function Builder 335funktionaler Trace � Einzelsatz-

statistik, zentraleFunktionsbaustein 334

G

Ganzzahlidentifikator 705Garbage Collection (GC) 433, 482,

832, 838, 853Compacting 435GC Analysis 466, 482JVM 433Kollektor 436Mark and Copy 436Mark and Sweep 435

2177.book Seite 864 Montag, 10. Juni 2013 11:30 11

Page 60: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

865

Index

Garbage Collection (GC) (Forts.)partielle 434Protokoll 439vollständige 435

Gateway-Monitor 342Gateway-Service 274Generation 433Generierungszeit 159Geschäftsprozess 47Global Cache Hit Ratio 804Globally Unique Identifier (GUID)

832GoingLive Check � SAP GoingLive

CheckGoingLive Functional Upgrade Service

265GUI 832GUI Control 368GUID 832GUI-Kommunikation 371GUI-Zeit 160, 193, 369, 373

H

HANA � SAP HANAHardware 46

Analyse 75, 77, 79Engpass 82, 169Kapazität 170Konsolidierung 267, 269Landschaft 319Sizing 239, 241, 425Tuning 30

Hardwarepartner 241, 245Harmonisierung 268Hash-Tabelle 223Hauptspeicher 46, 281, 695, 702,

711, 745Auslastung 81Bedarf 260, 301Engpass 81, 82, 85, 169Profil 173Pufferung 415Sizing 723

Hauptspeicher, virtueller 313Hauptspeicherbedarf 190Hauptspeicherkonfigurationsmonitor

260Heap 284

Heap Dump 472Heap Dump Analysis 482Heap Memory 832Hierarchie 605, 608High Availability 319, 320High Water Mark 117Hint 517Hintergrundjob, Scheduling-Monitor

819Hintergrundlast 168Hintergrundprogramm 240, 410Hintergrundservice 274, 320Hintergrundverarbeitung 820, 832Hitratio 93Hochverfügbarkeit 319, 832Hochverfügbarkeitscluster 270Hotspot 103, 455, 713, 816Hotspot Java Virtual Machine 436HPROF-Datei 472HTML 833HTML Business Template 393HTTP 833HTTP-Aufruf 397HTTP-Trace 206, 234, 380HybridProvider 596Hypertext Markup Language 833Hypertext Transfer Protocol 833

I

I/O-Engpass 87, 104, 201I/O-Operation 482IAC 833IBM DB2 788

für IBM i 795für Linus, UNIX und Windows 788für Linux, UNIX und Windows 787für z/OS 803

IBM i 295, 796ICM-Monitor 66, 135, 381, 394IDES 833IDoc 833IMG 833Implementation Guide 833Index 638, 695, 718, 745

administrieren 504anlegen 504B*-Baum-Index 627B*-Index 714

2177.book Seite 865 Montag, 10. Juni 2013 11:30 11

Page 61: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

866

Index

Index (Forts.)Bitmap-Index 624, 627BWA-Index 689effizienter 199fehlender 109Fragmentierung 509Hauptspeicher 653invertierter 713, 714konkatenierter 713, 716, 745logischer 660, 674physischer 660, 674Primärindex 109Qualität 510reorganisieren 509teilen 674TREX-Index 653verwalten 504

Index Range Scan 498, 503Index Scan 623Index Unique Scan 497Indexaktualisierung 682Index-Server 658, 678, 720Indizierung 621, 682InfoCube 595, 599, 608, 639

HANA-Migration 819HANA-optimierter 756indizieren im BWA 687Optimierung 620Tabellen 606transaktionaler 624Übersicht 819

InfoObject 595InfoProvider 595, 608, 631InfoSet 596In-Memory-Anwendung 698In-Memory-Computing 653, 695, 702In-Memory-Datenbank 711Insert-Only-Ansatz 718Installation

verteilte 319zentrale 319

Instanz � SAP-InstanzInteger ID 705Integrität 49Inter Process Communication 834Interaktionsmodell 368Internal Document 833International Demo- and Education

System 833

Internet Application Component 833Internet Communication Framework

(ICF) 389, 392Internet Communication Manager

(ICM) 134, 274, 378, 380, 388, 389, 657

Internet Communication Manager, Monitor 820

Internet der Dinge 699Internet Pricing and Configuration

(IPC) 273, 283, 360, 834Internet Transaction Server (ITS) 273,

283, 326, 377, 392, 834externer 393integrierter 292, 392, 820Performanceanalyse 206, 394

Internetanbindung 367Interpreter 440Intranet 834Introscope � CA Wily IntroscopeIntroscope Trace 481Introscope-Statistik 178Invalidierung 116, 559IPC 834iSeries 295ITS � Internet Transaction Server (ITS)ITS-Monitor 66ITS-Status-Monitor 393iView 38

J

J2EE Engine � SAP NetWeaver Application Server Java

Java 834Java Development Kit (JDK) 432Java Dictionary 549, 586Java Heap 433, 439, 472, 483Java Runtime 445Java Server Page 40, 367, 378Java Servlet 40, 367Java Virtual Machine (JVM) 361, 432,

482, 834, 840Speicherbereiche 433Workprozesse 442

Java-Applikationsinstanz 76, 277Java-Bytecode 440JavaScript 720Java-Statistik 177

2177.book Seite 866 Montag, 10. Juni 2013 11:30 11

Page 62: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

867

Index

Java-Trace 66Java-Workload-Monitor 183JIT-Compiler 432, 440, 456Jobanalyse 820Jobübersicht 646Join 608, 623Join Engine 721

K

Karenz 558, 567Katalogpuffer 586Kennzahl 150, 595Key Performance Indicator (KPI) 137Knowledge Management (KM) 653Kommandomonitor 775Kompilat 440Komprimierbarkeit 717Komprimierung 652, 662, 702, 705

Cluster-Coding 707Präfix-Coding 707Run-length-Coding 708Sparse-Coding 707

Konditionstabelle 563, 580Konsolidierungsstrategie 273Kontextwechsel 80, 284, 834Kopplung

Application Link Enabling (ALE) 339harte 339weiche 339

L

Laden 599Ladezeit 159LAN 835LAN-Check 87Landschaftsreorganisation 673, 675Landschaftsreplikation 722Large IO Pool 782Last 163, 174

ausgehende 348eingehende 348externe Systeme 180

Lastprofil 151, 479Lastverteilung 151, 170, 317

ABAP 318falsche 82, 129, 171

Lastverteilungskonzept, neues 358

Latenzzeit 380, 465, 711Laufzeit 455

Analyse 150, 194, 208, 478konstante 224logarithmisch ansteigende 224

Leaf 624Lesen

satzweises 503sequenzielles 503, 770, 779, 785,

792, 793, 800, 801, 805, 806, 810, 816, 817

Lesezugriff 422logischer 93physischer 93

Linearität 248Line-Item-Dimension 609, 757Linux 295liveCache � SAP liveCacheLocal Area Network (LAN) 45, 835Local Memory 282Lock Handler 404Lock List 787Lock-Eskalation 777Log-Bereich 109, 778Logical Unit of Work (LUW) 355, 835Logistic Information System (LIS)

335, 593Logon-Gruppe � AnmeldegruppeLoop, geschachtelter 223Low Speed Connection 376LRU 835

M

Mandant 835Mark-and-Copy-Kollektor 436Maschinen-Code 440Master-Index-Server 673, 678Master-Service 754Mehrkernprozessor 80Mehrsprachigkeit 608Memory Analyzer 471, 483Memory Inspector 218, 220Memory Leak 471, 474, 482, 483Memory Management 835

IBM i 295Linux 295

Memory Pipe 135, 392Mengengerüst 244

2177.book Seite 867 Montag, 10. Juni 2013 11:30 11

Page 63: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

868

Index

Merge 676, 709, 749Auto-Merge 750Critical-Merge 750Hard-Merge 750Smart-Merge 750

Merkmal 595, 602, 608Message-Server 239, 274, 275, 363Metadaten 92Method Parameter Trace 482Methode 440, 482Methode, Speicherbedarf 451Microsoft SQL Server 494Microsoft Windows 86, 293, 324Migration 267Missing Index 505Mobile Client 38Model View Controller (MVC) 388Modularisierungseinheit 208, 218Modus 284, 835

externer 284interner 285PRIV-Modus 288, 305

Modusliste (Mode List) 304Monitoring 47, 56Monitoring, zentrales 51Monitoring-Agent 143, 227Monitoring-Baum 141Monitoring-System, zentrales 179Mooresches Gesetz 835MultiProvider 596, 597, 608Multi-Threaded-CPU 80MVC 388

N

Name-Server 658, 720Nametab-Puffer 550Navigationsattribut 602, 608Nested Loop Join 536, 623, 786Net Time 370Network Alert Monitor 821Network Monitor 821Network-I/O- und File-I/O-Trace 482Netzplangrafik 819Netzwerk 87, 201, 322

Operation 464Problem 201Tuning 30Übertragungszeit 386

Netzwerk (Forts.)Verbindung 464

Nummernkreis 414Intervall 414Nummernkreisstand 419Objekt 414Puffer 422Pufferung 414, 415, 419, 820Pufferungsmodus 421

O

Object Linking and Embedding (OLE) 835

OLAP 257, 272, 594, 835OLAP Engine 721OLAP-Cache 583, 609

Konfiguration 632, 819Monitor 819überwachen 630

OLAP-Cache-Monitor 633, 635OLAP-Prozessor 609Old Generation 434, 436, 438OLE 835OLTP 257, 272, 594, 835Online Analytical Processing � OLAPOnline Transaction Processing �

OLTPOpen Object 814OPEN-Operation 199Open-SQL-Monitor 476Optimierer � DatenbankoptimiererOptimierung, technische 20Optimierungskonzept 47, 51Optimizer � DatenbankoptimiererOracle 94, 809Oracle Wait Event 99Outsourcing 25

P

Package Cache 787Page-in 829Page-out 829Pages 92Paging 835Paging-Datei 297, 313Paging-Datei � AuslagerungsspeicherPaging-Rate 81, 85, 795

2177.book Seite 868 Montag, 10. Juni 2013 11:30 11

Page 64: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

869

Index

PAI 835Paketdimension 605Parallelisierung 702, 712, 753Parameter, charakterisierender 151Parameteränderung 87Parameterpflege 381Parsen 497Partitionierung 332, 662, 712, 754

bereichsweise 713horizontale 712umlaufende 713vertikale 712

PASE-Laufzeitumgebung 295PBO 836Performance 48, 836

Forum 74Management 33Messung 368

Performance Hotspot Analysis 455Performance Hotspot Trace 482Performanceindikator 136Performancemanagement, proaktives

21Performancemenü 821Performanceoptimierung, kontinuier-

liche 58Performanceproblem

allgemeines 165dauerhaftes 167spezielles 165, 173temporäres 167

Performance-Trace 194, 195, 372, 618

Permanent Generation 434, 439Pflege-View DBDIFFVIEW 506Pflichteingabefeld 538physischer Hauptspeicher (RAM) 281,

297, 313Pivotieren 596Planungsanwendung 594Plug-in 37Pool-Größe 686Pop-up 836Präfix-Coding 707Präprozessor 659, 673, 720

Kapazität 686konfigurieren 683Modi 685

Präsentationsebene 38

Präsentationsserver 41Analyse 381Trace 383

PREPARE 200Prepared Statement 804Pre-parsed Template 393Primärindex 495, 505, 770Prioritätsklasse 358Private Mode 288PRIV-Modus 128, 289Procedure Cache 814Process After Input 835Process Before Output 836Processing-Zeit 161, 163, 166Profil bearbeiten 819Profilparameter 305

abap/atrapath 211abap/atrasizequota 211abap/heap_area_dia 287, 291, 309,

311abap/heap_area_nondia 287, 291,

309, 311abap/heap_area_total 287, 301, 309abap/heaplimit 173, 287dbs/io_buf_size 200Einstellung 310em/address_space_MB 294em/blocksize_KB 286em/initial_size_MB 118, 128, 286,

303, 309em/max_size_MB 294Pflege 820PHYS_MEMSIZE 118, 294, 303rdisp/atp_server 320, 424rdisp/bufrefmode 558rdisp/bufreftime 558rdisp/enqname 320rdisp/max_wprun_time 326rdisp/mshost 320rdisp/PG_MAXFS 293rdisp/PG_SHM 293rdisp/ROLL_MAXFS 286, 309rdisp/ROLL_SHM 118, 286rdisp/vb_dispatching 333rdisp/vbstart 331rsdb/max_blocking_faktor 533rsdb/obj/buffersize 425rsdb/obj/max_objects 425rstr/file 196

2177.book Seite 869 Montag, 10. Juni 2013 11:30 11

Page 65: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

870

Index

Profilparameter (Forts.)rstr/max_diskspace 196stat/dbprocrec 160ztta/roll_area 286, 291ztta/roll_extension 287, 291, 305,

309ztta/roll_first 287, 289, 291

Program Counter 80Program Global Area (PGA) 94Programm

Abbruch 306Fehler 305HTTPWatch 385PERFMON 386RSCOLL00 156SAP_COLLECTOR_FOR_PERFOR-

MANCE 156Saposcol 79saposcol 79

Programmpuffer 306, 550Promotion 434Prozess

beendeter 128externer 85haltender 128

Prozess-ID 126Prozesskette 599Prozessor 80, 266, 834Prozessor-Thread 364Prüfgruppe 425PTF-Paket 799Puffer 44, 92, 549

Arten 549Attributindex 44Betriebssystempuffer 44Datenbankpuffer 44datenmodellorientierter 44Datenpuffer 92Einstellung 116, 542Einzelsatzpuffer 554Katalogpuffer 787Kommunikationspuffer 787Management 554Metadatenpuffer 782objektorientierter Anwendungs-

puffer 44Package-Puffer 787Prozesspuffer 782Pufferhierarchie 44

Puffer (Forts.)Qualität 93, 112Speicher-Subsystem 44Status 567Synchronisation 556, 588, 819Synchronisationsmonitor 579Tabellenpuffer 44, 554, 587TABL 554TABLP 554Typen 44Zugriff 554

Puffer-Trace 194, 204Pufferung � SAP-PufferungPython-Trace 671

Q

quadratische Abhängigkeit 224Qualitätsanalyse 225Query, Parallelisierung 662Queue-Server 658Queue-Server konfigurieren 673, 682Quick Sizer 242, 313Quick-Sizer-Projekt 250

R

R/3 836Radio-Frequency Identification (RFID)

700RAID 836RAM � HauptspeicherRangliste 656RBO 499RBO � Rule-Based Optimizer (RBO)RDBMS 836Read Random Hit Ratio 803READ TABLE 223READ TABLE ... WITH KEY ... 222Reaktionszeit 56Rechner 76, 126Rechnerprofil 171Recoverability 49Recovery 54, 270Recursive Call 96Redo-Log-Datei 169REFRESH-Anweisung 222Region, generische 553Reisepass 177, 227, 839

2177.book Seite 870 Montag, 10. Juni 2013 11:30 11

Page 66: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

871

Index

Relational Database Management System 836

relationale Datenbank 40Remote Function Call (RFC) 37, 241,

358, 836ABAP-Coding 340Ablauf 341asynchroner (aRFC) 327, 340, 354,

820Grundlagen 338Hintergrund-RFC (bgRFC) 340, 357queued (qRFC) 340RFC-Zeit 344Statistiken 351synchroner 340transaktionaler (tRFC) 340, 355,

840RemoteCube 631Rendering-Zeit 386REOPEN-Operation 199Reorganisation 755Replikation 679, 680, 722Reporting 593Reporting, Vorberechnung 635Repository Browser 820Repository-Infosystem 820Request 566, 575Ressourcenbedarf 241, 248, 847Ressourcenmanagement 271Ressourcenmonitor 776RFC � Remote Function Call (RFC)RFC-Aufruf 194RFC-Client-Profil 351RFC-Trace 193, 194RFC-Verbindung 344, 820RFC-Verbindungen, überwachen 348RFID 836Roll Memory � SAP Roll MemoryRoll-in 158, 286, 834Roll-out 158, 286, 834Roll-Puffer 303Roll-up 596Roll-Wartezeit 160, 193, 343, 370Roundtrip 369, 465Row Cache 95Row Store 721, 735Row-ID 495Rule-Based Optimizer (RBO) 501Run-length-Coding 708

S

SAP Advanced Planning and Optimi-zation (SAP APO) 35

SAP Application Performance Standard 254

SAP Business ByDesign 699SAP Business Suite 34

Architektur 34Einführung 267

SAP Business Suite, SAP HANA 698SAP BusinessObjects 598SAP BusinessObjects Analysis 598SAP BusinessObjects Business Intelli-

gence-Plattform 598SAP BusinessObjects Dashboards 598SAP BusinessObjects Explorer 599,

690SAP BusinessObjects Web Intelli-

gence 598SAP Client Plug-in 230, 235, 383, 385SAP Crystal Reports 598SAP Cursor Cache 200SAP Customer Relationship Manage-

ment (SAP CRM) 35, 834SAP EarlyWatch Alert 25, 58, 69, 72,

258, 310SAP Easy Access-Menü 376SAP Enterprise Resource Planning

(ERP) 35SAP Extended Global (EG) Memory

292, 393SAP Extended Memory 117, 284,

286, 289, 292, 303, 313SAP GoingLive Check 25, 242, 245,

258, 310SAP GoingLive Functional Upgrade

Check 259SAP GoingLive Migration Check 259SAP GUI 367, 378, 836

Controls 367, 368for HTML 37, 378for Java Environment 37, 38, 378for Windows 37, 38, 378

SAP HANA 526, 695, 836Administration 758Cloud-Anwendung 698Datenbankplattform 697Hauptspeicherbereich 728

2177.book Seite 871 Montag, 10. Juni 2013 11:30 11

Page 67: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

872

Index

SAP HANA (Forts.)Indizierung 713Komprimierung 705Sizing 722Skalierbarkeit 526Skalierung 47

SAP HANA Studio 725SAP Heap Memory 117, 284, 287,

309, 313, 361SAP Host Agent 797SAP Internet Transaction Server

(SAP ITS) 39, 834SAP Java Virtual Machine 432SAP Java Virtual Machine Profiler

444, 472, 482SAP List Viewer 213SAP liveCache 36, 151, 272, 274, 768,

835SAP Logical Unit of Work (SAP LUW)

406SAP Management Console 441, 482SAP MaxDB 494, 772

Ausführungsplan 779Kommandomonitor 775Ressourcenmonitor 776

SAP NetWeaver 35Release 7.30 32Release 7.40 556

SAP NetWeaver Administrator 65, 67SQL-Trace 475

SAP NetWeaver Application Server 39, 377

SAP NetWeaver Application Server ABAP 76, 277

SAP NetWeaver Application Server Java 35, 76, 277, 431Serverknoten 445SQL-Trace 475

SAP NetWeaver Business Warehouse 152, 380, 583, 593, 836Administrationswerkzeuge 611Datenselektion 628Frontend 598hohe Datenbankzeiten 617Indizierung 621Lastprofile 617Optimierung 619Performanceoptimierung 608SAP HANA 697

SAP NetWeaver BW 36SAP NetWeaver BW Accelerator 608,

611, 655, 661, 696, 837Deltaindex 692Index anlegen 689InfoCubes indizieren 687Monitor 819Sizing 662

SAP NetWeaver BW Administrator Workbench 611

SAP NetWeaver Cloud 698SAP NetWeaver Enterprise Search 36,

654, 837SAP NetWeaver Portal 36, 38SAP NetWeaver Process Integration

36, 830SAP Paging Memory 291, 292, 585,

835SAP Product Lifecycle Management

(SAP PLM) 35SAP R/3 23SAP Roll Memory 117, 284, 309, 313SAP Service Marketplace 313SAP Service Marketplace, Service 71SAP Solution Manager 72, 142, 152,

178, 214, 215, 229, 232, 235, 387, 476, 768Analyse 70Performanceoptimierung 71Service Level Management 58Tracing 70Überwachung 68Workload-Analyse 70

SAP Standard Application Benchmark 239, 253

SAP Supplier Relationship Manage-ment (SAP SRM) 35

SAP Supply Chain Management (SAP SCM) 35

SAP System Identifier 837SAP Web Dispatcher 40, 239, 274,

276, 327SAP-Anwendung, Architektur 34SAP-Applikationsinstanz � SAP-

InstanzSAP-Basis 35SAPCCMSR 227SAPconnect 144SAP-Einführungsleitfaden (IMG) 820

2177.book Seite 872 Montag, 10. Juni 2013 11:30 11

Page 68: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

873

Index

SAP-Enqueue 405, 412, 421SAP-Enqueue-Monitor 427SAP-GUI-Transaktion

End-to-End-Laufzeitanalyse 231SAP-Instanz 76, 154, 268, 302, 833

Pflege 819Übersicht 820

SAP-Kernel 310SAP-Komponente 34SAP-Lösung 34SAP-Lösungslandschaft 35SAP-Paging 284SAP-Parameter, Änderung 121SAP-Performance-Trace 189SAP-Puffer 115, 159, 302, 312SAP-Puffer, Zugriff 194SAP-Puffer-Trace 196SAP-Pufferung 525, 549, 552

Art 551einschalten 559generische 552vollständige 552

SAP-Roll-Bereichglobaler 285lokaler 285

SAP-Roll-Datei 285SAP-Roll-Puffer 285SAProuter 837SAPS 254, 837SAP-Service 239, 319SAP-Speicherbereich 301SAP-Speicherkonfiguration 114, 127SAP-Speicherkonfigurationsmonitor

66, 114SAP-Speicherverwaltung 172SAP-System 35, 77SAP-Systemservice 837SAP-System-Trace 821SAP-Transaktion 405SAP-Workprozess 41, 83, 105, 123,

303, 313, 773Übersicht 123

Savepoint 93Schaltfläche 837Schattenprozess 97, 99Schnittstellen 317Schreib/Lese-(I/O-)Problem 86, 103Schreib/Lese-(I/O-)Probleme 791SD-Benchmark 253

Search Engine Service (SES) 654Sekundärindex 494, 496, 504, 506

Ändern 511Anlegen 511

SELECTverschachteltes 530

Selectidentischer 202

SELECT *-Klausel 531Selektionsbildschirm 537Selektivität 500, 502, 512Semaphore 126Sensordaten 700Sequential Read 199sequenzielles Lesen � Lesen,

sequentiellesSerialisierung 127Server 77, 837Server, Konsolidierung 267, 270Server-Destination-Statistiksatz 352Service 318Service Level Agreement 52Service Level Management 51, 70, 73,

837Service Level Reporting 52, 54, 57, 73Service, Pflege 210, 394, 397Session 361Session Monitor 97Shared Cursor Cache 95, 100Shared Memory 282, 306, 361, 392,

422, 583, 787, 837Shared Object 581

Gebietskonfiguration 584Gebietsmonitor 584Pufferung 550, 583

Shared Pool 94, 95Shared SQL Area 100, 543Shared SQL Cache 100Sicherheit 49SID 603, 837SID-Tabelle 603Simulationsanwendung 594Single Level Storage 295Single Point of Failure (SPOF) 320Sizing 239, 722

benutzerbasiertes 243durchsatzbasiertes 244initiales 242, 247Sizing Plausibility Check 246

2177.book Seite 873 Montag, 10. Juni 2013 11:30 11

Page 69: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

874

Index

Sizing (Forts.)T-Shirt-Sizing 242

Sizing-Projekt durchführen 249Sizing-Prozess 241Skalierbarkeit 248, 754, 838

horizontale 46, 838Programm 224vertikale 46, 838

Skeleton 803Slave-Index-Server 673, 678Slave-Service 754Slice & Dice 596Snapshot 679Socket 464Socket-Statistik 464Solution Monitoring 47, 68Sonde 478soziales Netzwerk 699spaltenorientierte Datenspeicherung

652, 695, 701, 703, 721, 731Sparse-Coding 707Speicher

allokierter 119, 728Belegung 287Bereich 296, 312fest allokierter (HEAP) 308genutzter 728globaler 282Konfiguration 114, 281lokaler 282, 835physischer 120, 728verfügbarer 300Verwaltung 838virtuell benötigter 300virtueller 728, 840

Speicher, virtueller 282Speicherabzug 220Speicherkonfiguration 118Speicherkonfigurationsmonitor 114,

304, 309, 427, 573, 582, 585, 632, 821

Speicherverwaltung 172Speicherverwaltung, integrierte 433Sperre 403, 462, 482

Datenbanksperre 404SAP-Enqueue 404, 421Shared-Sperren 424Sperren mit Menge 320, 424, 425Sperrkonflikt 408

Sperre (Forts.)Sperrkonzept 404Sperrobjekt 405Tabellensperre 411Überwachung 407Wartesituation 403

Spool-Service 274, 320SQL 839

Native SQL 519Open SQL 519, 586

SQL Editor 741SQL Plan Cache 739SQL Query Engine 797SQL Server 814SQL Server, Primärindex 816SQL-Anweisung 71, 95, 97, 99, 100,

194, 485, 494, 512, 514, 521, 741, 770, 775dynamische 803optimieren 485teure 96, 102, 487, 791, 821verschachtelte 530

SQL-Anweisungspuffer 782SQL-Coding 530SQL-Monitor, HANA-Migration 740SQL-Programmierung

goldene Regeln 521, 704, 717, 760performante 521

SQLScript 722SQL-Statistik 100, 101, 475, 487, 489,

492, 520, 580, 739, 820Analyse 103DB2 790DB2 für IBM i 797IBM DB2 für z/OS 805SAP MaxDB 775SQL Server 816

SQL-Trace 66, 103, 191, 194, 195, 196, 202, 234, 483, 487, 488, 492, 522, 527, 580, 821

ST-A/PI 215Stack Pointer 80Stammdaten 562Stammdatentabelle indizieren 626Stammformerkennung 656Star-Join-Ausführungsplan 622Star-Schema 596, 707Star-Schema, erweitertes 599Statement Cache 814, 816

2177.book Seite 874 Montag, 10. Juni 2013 11:30 11

Page 70: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

875

Index

Statement String 804Statistik, abgeleitete 453Statistiksatz 177, 190, 373, 839Statistiksatz, verteilter 177, 227Statistik-Server 755statistischer Einzelsatz 150, 189, 234,

565Stemming 656Stock 595Stop the World 435Stored Procedure 696, 814, 839Structured Query Language 839SUBMIT-Befehl 284Subrecord 160Suite Accelerator 698Support Package 839Survivor 436Swap 116, 559, 564Swap Space � AuslagerungsspeicherSybase 839Sybase ASE 781

Ausführungsplan 785Datenbankprozess 783Datenpuffer 781Engine 783

Synchronization Analysis 461Synchronization Trace 482System Global Area (SGA) 94Systemkonsolidierung 268, 271Systemlandschaft 267, 839Systemlastanalyse, globale 179Systemlastmonitor � Workload-

MonitorSystemlog 820System-Monitoring 49Systemnachricht, versenden 820Systempuffer 550Systemverfügbarkeit 320

T

TabelleAnalyse 576, 819ARFCSDATA 355ARFCSSTATE 355ATAB 543Buffered Objects 587D010* 543D010S 543

Tabelle (Forts.)D020* 543DBDIFF 506DBSTATC 507DDLOG 557, 579, 584DDNTF 543, 574DDNTT 543, 574gepufferte 568, 574Hash-Tabelle 223interne 218, 847KAPOL 543, 568Konditionstabelle 563kundeneigene 571, 575NRIV 408, 414, 420NRIV_LOKAL 417reorganisieren 509RESB 63, 422, 509SAP-eigene 571, 575sortierte 223SWNCMONI 156TCURR 577tRFC-Tabelle 356VBBE 422VBDATA 332VBHDR 332, 574VBMOD 332Verbuchungstabelle 332, 336

Tabellengröße 575Tabellenoperation 208Tabellenpflege 506, 748Tabellen-Pool

ATAB 580KAPOL 580

Tabellenpuffer 44, 193, 549, 587generischer 542generischer (TABL) 549partieller (TABLP) 549

Tabellenpufferung 551ABAP-Server 564Java 586

Tabellenstatistik 108, 501, 507, 819Tabellenzugriffsstatistik 565, 569,

574, 821Table Call Statistics � Tabellenzugriffs-

statistikTablespace 90Tag 389Task-Typ 155TCP/IP 840

2177.book Seite 875 Montag, 10. Juni 2013 11:30 11

Page 71: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

876

Index

TDC 840temporäre sequenzielle Objekte 840TemSe 840Teraspace 295Text-Dictionary 708Textedit Control 368Textsuche 653Thread 79, 80, 482, 736, 773, 783

Hardware 80Software 80

Thread-Dump 443Thread-Monitor 739Timebased Sampling 455TMS 840TO 840Trace, Frontend 229Trace-Level 231Training 844Transaktion 405, 840

AL11 819AL12 819Antwortzeit 189BALE 819DB01 92, 105, 408, 427DB02 92, 501, 819DB05 576, 819DB12 92, 819DB13 92, 819DB13C 92DB20 819DB21 507DB24 92DB50 772DBACOCKPIT 66, 91, 126, 408,

505, 507, 725, 768, 772, 819, 831DSWP 183, 479DWDM 368kritische 55LISTCUBE 613, 819ME57 538OS06 77OS06N 77OS07 77OS07N 77OSS1 819RSA1 611, 612, 615, 625, 643, 689,

819RSCUSTV14 819

Transaktion (Forts.)RSDDBWAMON 664, 678, 692,

819RSDDV 612, 664, 690, 819RSMIGRHANADB 759, 819RSODSO_SETTINGS 819RSRCACHE 633RSRT 612, 614, 618, 631, 664, 690,

819RSRV 692, 819RZ01 819RZ02 819RZ03 819RZ04 819RZ10 819RZ11 381, 819RZ12 819RZ20 67, 137, 348, 362, 820SAT 208SBGRFCCONF 357SBGRFCMON 357SCII 225SE11 504, 505, 529, 820SE12 207, 820SE14 505, 820SE15 820SE16 615, 820SE24 225, 820SE30 66, 224SE37 225, 335SE38 225, 311, 409, 539, 820SE80 391, 541, 820SEU 820SHMA 584SHMM 584SICF 210, 394, 397SITSMON 820SITSPMON 66, 393SM01 820SM02 820SM04 342, 820SM12 413, 427, 820SM13 111, 127, 332, 820SM21 111, 127, 287, 820SM24 583SM30 506SM36 820SM37 646, 820SM39 820

2177.book Seite 876 Montag, 10. Juni 2013 11:30 11

Page 72: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

877

Index

Transaktion (Forts.)SM49 820SM50 66, 123, 219, 310, 319, 336,

342, 394, 409, 773, 820SM51 78, 123, 132, 820SM56 419, 820SM58 355, 820SM59 344, 346, 356, 820SM63 820SM65 820SM66 124, 130, 319, 336, 342,

394, 408, 773, 820SM69 820SMGW 342SMICM 66, 135, 381, 394, 820SMLG 129, 319, 325, 820SNRO 419sperren 820SPRO 425, 820SQLM 740, 820ST01 821ST02 66, 114, 260, 300, 304, 307,

309, 427, 573, 582, 821ST03 66, 152, 153, 179, 319, 343,

348, 362, 395, 613, 615, 616, 821ST03G 66, 178, 179ST03N 153, 262ST04 92, 120, 821ST05 194, 372, 487, 821ST06 66, 77, 83, 86, 104, 121, 126,

260, 300, 374, 795, 821ST06N 77ST07 821ST08 821ST09 821ST10 821ST11 821ST12 215, 217ST14 821ST22 305, 821STAD 152, 179, 190, 343, 351, 362,

370, 371, 397, 821STAT 565STATTRACE 178, 179, 227STMS 821STUN 65, 821SWLT 821SXMB_MONI 821

Transaktion (Forts.)TREXADMIN 126, 663, 666, 675,

680, 821TU02 821VA01 174, 191Variante 541VL01N 191

Transaktionscode 840Transaktionsprofil 173Transaktionsschritt 155, 157, 284Transformieren 599Transmission Control Protocol/

Internet Protocol 840Transparenz 709Transport 840Transport Domain Controller 840Transport Management System 840Transport Organizer 840Transportdomäne 840Transport-Management-System 821Tree 624Tree Control 368Trefferrate 93TREX 36, 44, 274, 651, 696, 837, 840

Administration 821Anfrageprozess 658Anwendungen 653Architektur 657Grundlagen 652Index 653Komprimierung 705Lastübersichtsdatei 669Optimierung 673Performanceanalyse 665Python-Trace 671reorganisieren 675Replikation 679RFC-Server 687SAP NetWeaver BW Accelerator 661Serverauslastung überwachen 665Server-Übersicht 667Sizing 660Suchfunktionen 655verteilte Installation 674Werkzeuge 663, 719

T-Shirt-Sizing 242Tune Summary 114Tuning 545

Applikationstuning 59, 74

2177.book Seite 877 Montag, 10. Juni 2013 11:30 11

Page 73: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

878

Index

Tuning (Forts.)Programmoptimierung 60technisches 59, 63

Tupel-Rekonstruktion 704

U

Überwachungskonzept 47, 51Unicode 264, 283, 302Unicode-Konvertierung 265Uniform Resource Locator 840UNIX 85, 324UNIX, Standardimplementierung 295Unternehmens-IMG 840Untersatz 151Upgrade 264URL 840User Call 96User Kernel Thread (UKT) 773User-Exit 247

V

Value-Per-Unit 595Variante 213Verbuchung 110, 330, 363

asynchrone 331Auftrag 331deaktivierte 127Dispatching 333lokale 336Prioritätensteuerung 334Service 319synchrone 336Tabelle 331V1-Verbuchung 334V2-Verbuchung 334V3-Verbuchung 334Verbuchungsart 334Verbuchungszeit 336Workprozess 331, 332

Verbuchungssatz 820Verbuchungsservice 274Verdrängung � SwapVerfügbarkeit 48, 181, 319Verfügbarkeitsprüfung 421, 583Verifikation 63verteilter Statistiksatz 177

Virtual Machine Container (VMC) 273, 274, 317, 360, 840

Virtualisierung 269virtueller Hautspeicher 313virtueller Provider 596virtueller Speicher 282VMC � Virtual Machine Container

(VMC)VMC-Service 274Vorverarbeitung verteilen 673, 683

W

WAN 841WBO 841Web Dynpro 841Web Dynpro ABAP 39, 206, 210,

367, 377, 388, 394Web Dynpro Java 367, 378Web GUI 378Web Reporting 598Web Template, Vorberechnung 636Webanwendung 379, 387Webbrowser 830Webservice 37, 241, 378

ABAP 394Aufrufe überwachen 397

Webtransaktion 229WHERE-Klausel 524Wide Area Network (WAN) 46, 841Windows 86, 293, 324Workbench Organizer 841Workgroup 325Workload-Analyse 25, 59, 149, 150,

157, 165, 478, 483Workload-Monitor 66, 151, 152, 153,

156, 173, 227, 262, 319, 343, 362, 395, 613, 821BW-Systemlast 616Java 183Rolle 153zentraler 178, 179

Workload-Übersicht 180Workprozess 41, 127, 129, 273, 285,

321, 362, 841ABAP-Trace 209Anzahl erhöhen 364Java Virtual Machine 442Nicht-Dialog-Workprozess 290

2177.book Seite 878 Montag, 10. Juni 2013 11:30 11

Page 74: SAP -Performanceoptimierung · 9.4.3 ATP-Server überwachen ..... 426 9.5 Zusammenfassung ..... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen

879

Index

Workprozess-Monitor 336, 394Workprozess-Typ 155Workprozess-Übersicht 66, 98, 123,

196, 219, 310, 319, 342, 408, 409, 773, 820

Workprozess-Übersicht, globale 130, 820

World Wide Web 841WP � WorkprozessWWW 841

X

XML 841XS-Server 720

Y

Young Generation 433, 438

Z

zeilenorientierte Datenspeicherung 702

Zeitabhängigkeit 603, 608Zeitdimension 605Zeitflusshierarchie 216Zeitprofil 180zentrale Einzelsatzstatistik 226zentraler Überwachungsmonitor 67,

820zentrales Monitoring-System 179Zero Administration Memory Manage-

ment 118, 293, 297, 313Zugriffsplan 790

2177.book Seite 879 Montag, 10. Juni 2013 11:30 11