SAP PRESS SAP-Performanceoptimierung Analyse und Tuning von SAP-Systemen Bearbeitet von Thomas Schneider erweitert 2013. Buch. ca. 879 S. Hardcover ISBN 978 3 8362 2177 1 Format (B x L): 16 x 24 cm Weitere Fachgebiete > EDV, Informatik > Datenbanken, Informationssicherheit, Geschäftssoftware > SAP schnell und portofrei erhältlich bei Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft. Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programm durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr als 8 Millionen Produkte. 2177.book Seite 3 Montag, 10. Juni 2013 11:30 11 Thomas Schneider SAP -Performanceoptimierung ® Analyse und Tuning von SAP-Systemen Bonn 폷 Boston 2177.book Seite 5 Montag, 10. Juni 2013 11:30 11 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 7 Montag, 10. Juni 2013 11:30 11 Inhalt Inhalt Vorwort und Danksagung ............................................................. 17 Einleitung ..................................................................................... 19 1 Performancemanagement einer SAP-Lösung .......... 33 1.1 1.2 1.3 2 Die Architektur von SAP-Lösungen ............................. 1.1.1 SAP-Lösungen und -Komponenten ................ 1.1.2 Client-Server-Architektur ............................... Das Überwachungs- und Optimierungskonzept für eine SAP-Lösung ................................................... 1.2.1 Anforderungen an ein Überwachungsund Optimierungskonzept .............................. 1.2.2 Service Level Management ............................. 1.2.3 Das Konzept für eine kontinuierliche Performanceoptimierung ................................ 1.2.4 Werkzeuge und Methoden für das Überwachungs- und Optimierungskonzept ..... 1.2.5 SAP Solution Manager ................................... Zusammenfassung ...................................................... 34 34 38 47 47 51 58 65 67 72 Analyse von Hardware, Datenbank und ABAP-Applikationsserver ......................................... 75 2.1 2.2 2.3 2.4 Begriffsklärungen ........................................................ Hardwareanalyse ........................................................ 2.2.1 Analyse eines Hardwareengpasses (CPU und Hauptspeicher) ............................... 2.2.2 Identifizierung von Schreib-/Lese-(I/O-)Problemen ...................... 2.2.3 Weitere Analysen auf Betriebssystemebene .... Datenbankanalyse ...................................................... 2.3.1 Der Performancemonitor im DBA-Cockpit ...... 2.3.2 Analyse der Datenbankpuffer ......................... 2.3.3 Identifizierung teurer SQL-Anweisungen ........ 2.3.4 Identifizierung von Schreib-/Lese-(I/O-)Problemen ...................... 2.3.5 Weitere Analysen auf Datenbankebene .......... Analyse der SAP-Speicherkonfiguration ...................... 2.4.1 Analyse der SAP-Puffer .................................. 76 77 79 86 87 89 90 92 96 103 105 114 115 7 2177.book Seite 8 Montag, 10. Juni 2013 11:30 11 Inhalt 2.4.2 2.5 2.6 2.7 2.8 3 117 119 121 123 124 127 130 132 134 135 137 141 144 145 146 Workload-Analyse .................................................... 149 3.1 3.2 3.3 3.4 3.5 8 Analyse des SAP Extended Memorys, des SAP Heap Memorys und des SAP Roll Memorys ......................................... 2.4.3 Anzeige des allokierten Speichers .................. 2.4.4 Weitere Monitore zur detaillierten Analyse ... Analyse der SAP-Workprozesse .................................. 2.5.1 Felder der Workprozess-Übersicht ................. 2.5.2 Analyse der Workprozesse ............................. 2.5.3 Globale Workprozess-Übersicht ..................... 2.5.4 Überwachung der Dispatcher-Queue ............. Analyse des Internet Communication Managers (ICM) ......................................................... Kontinuierliche Überwachung mit dem CCMS ............ 2.7.1 Mit dem Überwachungsmonitor arbeiten ...... 2.7.2 Monitoring-Baum einrichten ......................... 2.7.3 Automatische Alert-Benachrichtigung einrichten ...................................................... 2.7.4 Grafische Benutzeroberfläche im SAP Solution Manager ................................... Zusammenfassung ...................................................... Grundlagen der Workload-Analyse und der Laufzeitanalyse ........................................................... Der Workload-Monitor .............................................. 3.2.1 Mit dem Workload-Monitor arbeiten ............ 3.2.2 Technische Einstellungen zum Workload-Monitor ........................................ Workload-Analyse ..................................................... 3.3.1 Ablauf eines Transaktionsschrittes ................. 3.3.2 Weitere Zeitkomponenten ............................ 3.3.3 Interpretation der Antwortzeiten ................... 3.3.4 Aktivität, Durchsatz und Last ......................... Workload-Analyse durchführen .................................. 3.4.1 Allgemeines Performanceproblem analysieren .................................................... 3.4.2 Spezielles Performanceproblem analysieren ... End-to-End-Workload-Analyse .................................. 3.5.1 Grundlagen der End-to-End-WorkloadAnalyse ......................................................... 3.5.2 Der zentrale Workload-Monitor .................... 150 153 153 156 157 157 160 161 163 165 165 173 176 177 178 2177.book Seite 9 Montag, 10. Juni 2013 11:30 11 Inhalt 3.5.3 3.6 4 Identifizierung von Performanceproblemen in ABAP-Programmen .................................................. 189 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 5 Mit dem zentralen Workload-Monitor arbeiten ......................................................... 179 3.5.4 Der End-to-End-Workload-Monitor im SAP Solution Manager ............................... 183 Zusammenfassung ...................................................... 184 Einzelsatzstatistik ........................................................ Performance-Trace ...................................................... 4.2.1 Performance-Trace erstellen ........................... 4.2.2 SQL-Trace auswerten ..................................... 4.2.3 Weitere Funktionen im SQL-Trace ................. 4.2.4 Puffer-Trace auswerten .................................. 4.2.5 RFC-Trace auswerten ..................................... 4.2.6 HTTP-Trace auswerten ................................... 4.2.7 Enqueue-Trace auswerten .............................. Performanceanalyse mit dem ABAP-Trace (Laufzeitanalyse) ......................................................... 4.3.1 ABAP-Trace erstellen ..................................... 4.3.2 ABAP-Trace auswerten ................................... 4.3.3 Varianten verwenden ..................................... 4.3.4 Ausblick: Einzeltransaktionsanalyse ................ 4.3.5 Mit der Einzeltransaktionsanalyse arbeiten ..... Analyse des Speicherverbrauchs mit dem ABAP Debugger und im Memory Inspector .......................... Code Inspector ........................................................... Zentrale Einzelsatzstatistik .......................................... End-to-End-Laufzeitanalyse im SAP Solution Manager ................................................ 4.7.1 Laufzeitanalyse einschalten ............................ 4.7.2 End-to-End-Laufzeitanalyse im SAP Solution Manager anzeigen ..................... Zusammenfassung ...................................................... 189 194 195 196 202 204 205 206 207 208 209 211 213 215 217 218 225 226 229 229 232 234 Hardware-Sizing, System- und Lastverteilung ........ 239 5.1 Initiales Hardware-Sizing ............................................ 241 5.1.1 Übersicht über das Projekt zum initialen Sizing ................................................ 242 5.1.2 Sizing-Projekt im Detail durchführen .............. 249 9 2177.book Seite 10 Montag, 10. Juni 2013 11:30 11 Inhalt 5.2 5.3 5.4 5.5 6 6.2 6.3 6.4 258 258 259 267 268 269 271 273 278 Grundlagen der Speicherkonfiguration ....................... 6.1.1 Begriffsklärungen ........................................... 6.1.2 SAP Role Memory, SAP Extended Memory, SAP Heap Memory ........................................ 6.1.3 SAP Extended Global Memory und SAP Paging Memory ...................................... Besonderheiten der Betriebssysteme .......................... 6.2.1 Zero Administration Memory Management für Microsoft Windows .................................. 6.2.2 Memory Management für Linux .................... 6.2.3 Memory Management für IBM i .................... Speicherbereiche konfigurieren und überwachen ....... 6.3.1 Auslagerungsspeicher überwachen ................ 6.3.2 SAP-Speicherbereiche konfigurieren und überwachen .................................................. 6.3.3 Hilfe zur Fehlerbehebung .............................. Zusammenfassung ...................................................... 282 282 284 291 293 293 295 295 296 299 301 305 312 Lastverteilung und Remote Function Calls .............. 317 7.1 10 253 Speicherkonfiguration .............................................. 281 6.1 7 5.1.3 SAP Standard Application Benchmarks .......... Sizing bei Laststeigerung, Versionswechsel oder Migration ........................................................... 5.2.1 Übersicht über ein Sizing-Projekt im Umfeld einer bereits produktiven Installation ............ 5.2.2 Sizing im Umfeld produktiver Installationen im Detail durchführen ................................... Systemlandschaft planen ............................................ 5.3.1 Verteilung von SAP-Applikationsinstanzen .... 5.3.2 Hardwarekonsolidierung ................................ 5.3.3 System- und Datenbankkonsolidierung .......... Services des SAP NetWeaver Application Servers ....... Zusammenfassung ...................................................... Lastverteilung innerhalb der ABAP-Instanzen ............. 318 7.1.1 Message-, Enqueue- und ATP-Service verteilen ........................................................ 320 7.1.2 Dialog-, Hintergrund- und SpoolWorkprozesse verteilen ................................. 320 2177.book Seite 11 Montag, 10. Juni 2013 11:30 11 Inhalt 7.1.3 7.2 7.3 7.4 7.5 8 Benutzer und Workprozesse auf CPU-Ressourcen verteilen .............................. 7.1.4 Dynamische Benutzerverteilung: Anmeldegruppen konfigurieren ...................... 7.1.5 Ressourcen pro Benutzer beschränken ........... 7.1.6 Betriebsarten ................................................. 7.1.7 Dynamische Workprozesse konfigurieren ....... 7.1.8 Verbuchung ................................................... Remote Function Calls (RFC) ....................................... 7.2.1 Grundlagen und Begriffe ................................ 7.2.2 Ablauf eines RFCs .......................................... 7.2.3 RFC-Verbindungen konfigurieren und testen ..................................................... 7.2.4 Eingehende und ausgehende Last überwachen ................................................... 7.2.5 Parallelisierung von Prozessen mit asynchronen RFCs konfigurieren ..................... 7.2.6 Datenübertragung mit transaktionalen RFCs überwachen ........................................... 7.2.7 Hintergrund-RFCs .......................................... Neues Lastverteilungskonzept ..................................... SAP Virtual Machine Container ................................... Zusammenfassung ...................................................... 321 324 328 329 329 330 338 338 341 344 348 354 355 357 357 360 362 SAP GUI und Internetanbindung ............................. 367 8.1 8.2 8.3 SAP GUI ..................................................................... 8.1.1 Interaktionsmodell und Performancemessung ......................................................... 8.1.2 Performance der GUI-Kommunikation analysieren und optimieren ............................ SAP-Webanwendungen .............................................. 8.2.1 Einsatz von Web UI und SAP GUI planen ....... 8.2.2 HTTP-Trace im Internet Communication Manager ........................................................ Analysen auf dem Präsentationsserver ........................ 8.3.1 Präsentationsserver-Trace für Webanwendung ............................................. 8.3.2 Performancewerkzeuge des Betriebssystems ... 8.3.3 Webanwendungen kontinuierlich überwachen ................................................... 368 368 371 377 378 380 381 383 386 387 11 2177.book Seite 12 Montag, 10. Juni 2013 11:30 11 Inhalt 8.4 8.5 9 Business Server Pages (BSP), Web Dynpro ABAP und integrierter ITS .................................................... 8.4.1 Grundlagen von Business Server Pages und Web Dynpro ABAP ................................. 8.4.2 Grundlagen des integrierten ITS .................... 8.4.3 Grundlagen von ABAP-Webservices .............. 8.4.4 Performanceanalyse von ABAPWebservices, BSPs, Web-Dynpro-ABAPund ITS-Anwendungen durchführen .............. 8.4.5 Aufrufe von Webservices überwachen ........... Zusammenfassung ...................................................... 388 388 392 394 394 397 398 Sperren ..................................................................... 403 9.1 9.2 9.3 9.4 9.5 Sperrkonzepte von Datenbanksystem und SAP-System ............................................................... 9.1.1 Datenbanksperren ......................................... 9.1.2 SAP-Enqueues ............................................... Überwachung von Sperren ......................................... 9.2.1 Datenbanksperren ......................................... 9.2.2 SAP-Enqueues ............................................... Nummernkreispufferung ............................................ 9.3.1 Grundlagen ................................................... 9.3.2 Nummernkreispufferung einschalten ............. 9.3.3 Nummernkreispufferung überwachen ............ Sperren mit Menge und ATP-Server ........................... 9.4.1 Grundlagen ................................................... 9.4.2 ATP-Server konfigurieren ............................... 9.4.3 ATP-Server überwachen ................................ Zusammenfassung ...................................................... 404 404 405 407 408 412 414 414 419 420 421 422 424 426 427 10 Optimierung der Java Virtual Machine und von Java-Programmen .............................................. 431 10.1 10.2 12 Garbage Collection .................................................... 10.1.1 Aufbau des Java Heaps .................................. 10.1.2 Garbage-Collection-Algorithmen ................... 10.1.3 Auswahl des Kollektors ................................. 10.1.4 Parametrisierung des Java Heaps und der Garbage Collection .................................. 10.1.5 Protokollierung von Garbage Collections ....... Just-in-Time-Compiler ............................................... 433 433 435 436 438 439 440 2177.book Seite 13 Montag, 10. Juni 2013 11:30 11 Inhalt 10.3 10.4 10.5 10.6 10.7 10.8 SAP Management Console .......................................... SAP Java Virtual Machine Profiler ............................... 10.4.1 Architektur ..................................................... 10.4.2 Verbindungsaufbau ........................................ 10.4.3 Allocation Analysis ......................................... 10.4.4 Performance Hotspot Analysis ........................ 10.4.5 Method Parameter Analysis ........................... 10.4.6 Synchronization Analysis ................................ 10.4.7 File- und Network-I/O-Analysis ...................... 10.4.8 Garbage Collection Analysis ........................... 10.4.9 Klassenstatistik und Heap Dump .................... Memory Analyzer ....................................................... 10.5.1 HPROF-Dateien erstellen ............................... 10.5.2 Analyse des Java Heaps mit dem Memory Analyzer ........................................... Lokale Datenbankmonitore und SQL-Trace im SAP NetWeaver AS Java ............................................. Java-Workload- und Laufzeitanalyse mit CA Wily Introscope ..................................................... 10.7.1 Funktionsweise von Introscope ...................... 10.7.2 Mit dem WebView und der Workstation von Introscope arbeiten ................................. 10.7.3 Introscope Trace ............................................ Zusammenfassung ...................................................... 441 444 444 445 448 455 459 461 464 466 469 471 472 472 475 478 478 479 481 482 11 Optimierung von SQL-Anweisungen ....................... 485 11.1 11.2 11.3 Teure SQL-Anweisungen identifizieren und analysieren ................................................................. 11.1.1 Identifizierung und Voranalyse ....................... 11.1.2 Detaillierte Analyse ........................................ SQL-Anweisungen durch Sekundärindizes optimieren .................................................................. 11.2.1 Ein wenig Theorie .......................................... 11.2.2 Indizes und Tabellenstatistiken administrieren ................................................ 11.2.3 Regeln zum Anlegen oder Ändern von Sekundärindizes ...................................... SQL-Anweisungen im ABAP-Programm optimieren .... 11.3.1 Regeln für die performante SQLProgrammierung ............................................ 487 487 490 494 494 504 511 521 521 13 2177.book Seite 14 Montag, 10. Juni 2013 11:30 11 Inhalt 11.4 11.5 11.3.2 Beispiel für die Optimierung eines ABAP-Programms .......................................... 11.3.3 Vorbelegung von Feldern in Reporttransaktionen ................................................ Teure SQL-Anweisungen durch falsche Puffereinstellungen und Administrationswerkzeuge .... Zusammenfassung ...................................................... 527 537 542 544 12 SAP-Pufferung .......................................................... 549 12.1 12.2 12.3 12.4 12.5 Grundlagen der Tabellenpufferung ............................. 12.1.1 Pufferungsarten ............................................. 12.1.2 Pufferzugriffe ................................................. 12.1.3 Puffersynchronisation .................................... 12.1.4 Pufferung einschalten .................................... 12.1.5 Welche Tabellen sollen gepuffert werden? .... Tabellenpufferung auf dem ABAP-Server überwachen ............................................................... 12.2.1 Tabellenzugriffsstatistik ................................. 12.2.2 Analyse der gepufferten Tabellen ................... 12.2.3 Analyse der bisher nicht gepufferten Tabellen ........................................................ 12.2.4 Detaillierte Tabellenanalyse ........................... 12.2.5 Monitor zur Puffersynchronisation (DDLOG-Einträge) ......................................... 12.2.6 SQL-Statistik und SQL-Trace .......................... Objektorientierte Anwendungspuffer überwachen ..... Tabellenpufferung auf dem SAP NetWeaver AS Java überwachen .................................................. Zusammenfassung ...................................................... 551 551 554 556 559 561 564 565 568 574 576 579 579 580 586 589 13 Optimierung von Anfragen an SAP NetWeaver Business Warehouse ................................................ 593 13.1 14 Grundlagen des SAP NetWeaver Business Warehouse ................................................................ 594 13.1.1 Übersicht über die wichtigsten Begriffe in SAP NetWeaver BW .................................. 595 13.1.2 InfoCube und erweitertes Star-Schema .......... 599 2177.book Seite 15 Montag, 10. Juni 2013 11:30 11 Inhalt 13.2 13.3 13.4 13.1.3 Möglichkeiten der Performanceoptimierung im Überblick .............................. 13.1.4 BW-Administrationswerkzeuge im Überblick ....................................................... Analyse teurer BW-Anfragen ....................................... Technische Optimierungsoptionen im Detail ............... 13.3.1 Indizierung administrieren .............................. 13.3.2 Einstellungen zur Datenselektion ................... 13.3.3 Komprimieren der Faktentabelle .................... 13.3.4 OLAP-Cache überwachen ............................... 13.3.5 Vorberechnung von Reports ........................... 13.3.6 Aggregate ...................................................... Zusammenfassung ...................................................... 608 611 613 619 621 628 629 630 635 637 647 14 Optimierung von Suchanfragen mit TREX ............... 651 14.1 14.2 14.3 14.4 14.5 Grundlagen und Architektur des TREX unter Performancegesichtspunkten ...................................... 14.1.1 TREX-Einsatzszenarien und Suchfunktionen ... 14.1.2 Architektur des TREX ..................................... 14.1.3 Besonderheiten des SAP NetWeaver BW Accelerators ................................................... 14.1.4 TREX-Administrationswerkzeuge im Überblick .................................................. Performanceanalyse auf dem TREX durchführen ......... 14.2.1 Auslastung der TREX-Server überwachen ....... 14.2.2 Python-Trace erstellen und auswerten ............ 14.2.3 Performance-Trace erstellen und auswerten ... Technische Optimierungsoptionen im Detail ............... 14.3.1 Indizes teilen ................................................. 14.3.2 TREX reorganisieren ....................................... 14.3.3 Deltaindizes einsetzen .................................... 14.3.4 Master- und Slave-Index-Server verwenden ... 14.3.5 Queue-Server konfigurieren ........................... 14.3.6 RFC-Verbindungen vom ABAP-System zum TREX erhöhen ......................................... InfoCubes im BWA indizieren ..................................... Zusammenfassung ...................................................... 652 653 657 661 663 665 665 671 672 673 674 675 676 678 682 687 687 693 15 2177.book Seite 16 Montag, 10. Juni 2013 11:30 11 Inhalt 15 Optimierung von Datenbankanfragen mit SAP HANA .......................................................... 695 15.1 15.2 15.3 15.4 15.5 SAP HANA-Einsatzszenarien ...................................... Grundlagen der Hauptspeicherdaten in SAP HANA und TREX ................................................. 15.2.1 Spaltenorientierte Datenspeicherung ............. 15.2.2 Datenkomprimierung .................................... 15.2.3 Datenhaltung im Hauptspeicher .................... 15.2.4 Partitionierung und Parallelisierung ............... 15.2.5 Indizierung .................................................... 15.2.6 Datenmodellierung aus Performancesicht ...... SAP HANA-Architekturüberblick und Sizing ............... 15.3.1 SAP HANA-Architekturüberblick ................... 15.3.2 Sizing ............................................................ 15.3.3 HANA-Administrationswerkzeuge im Überblick .................................................. Technische Optimierungsoptionen im Detail .............. 15.4.1 Hauptspeicheranalyse .................................... 15.4.2 Identifizierung und Analyse teurer SQL-Anweisungen ......................................... 15.4.3 Indizes anlegen (invertierter Index, konkatenierter Index) .................................... 15.4.4 Deltaindizes administrieren ........................... 15.4.5 Lastverteilung, Parallelisierung und Partitionierung .............................................. 15.4.6 Optimierung von InfoCubes und DataStore-Objekten für SAP HANA ............... Zusammenfassung ...................................................... 697 701 703 705 709 712 713 716 719 719 722 725 728 728 736 745 749 753 756 760 Anhang ........................................................................... 765 A B C D E F Datenbankmonitore ............................................................. Wichtige Transaktionscodes ................................................. Fragen und Antworten ......................................................... Glossar ................................................................................. Informationsquellen ............................................................. Der Autor ............................................................................. 767 819 823 829 843 858 Index .......................................................................................... 859 16 2177.book Seite 19 Montag, 10. Juni 2013 11:30 11 Einleitung Warum ist die Performance Ihrer betriebswirtschaftlichen IT-Anwendung wichtig? Nur bei guten Antwortzeiten können Benutzer motiviert und effizient mit der Anwendung arbeiten. Ein langsames System führt zu Ausfallzeiten und Frustration. Eskaliert die Situation, wird im schlimmsten Fall der zur Bewältigung der Geschäftsprozesse erforderliche Durchsatz nicht mehr erreicht. Mehrarbeit, Produktionsverzögerungen und finanzielle Verluste sind die Folge. Umgekehrt steigert eine systematische, proaktive Performanceoptimierung maßgeblich den Nutzen Ihrer betriebswirtschaftlichen Anwendung. Performance Die Performance eines Datenverarbeitungssystems ist als die Fähigkeit definiert, gegebene Anforderungen an Antwortzeiten und Datendurchsatz zu erfüllen. Solche Anforderungen können z. B. sein, dass innerhalb einer Stunde ein Durchsatz von 10.000 gedruckten Rechnungen erreicht werden muss oder dass die Antwortzeit für das Erfassen eines Kundenauftrags unter einer Sekunde liegen soll. Eine gute Performance ist keine absolute Eigenschaft einer betriebswirtschaftlichen Anwendung, sondern immer relativ zu den Anforderungen an diese zu sehen. Proaktives Performancemanagement Unter Performanceoptimierung verstehen wir in diesem Buch einen Prozess, der immer fünf Phasen umfasst: Die ersten beiden Phasen sind, zu einem Verständnis der Geschäftsprozesse zu kommen sowie Performanceziele festzulegen und zu quantifizieren. Diese Schritte beziehen alle Beteiligten mit ein, d. h. Techniker und Anwendungsfachleute. Nur auf der Basis dieser Voraussetzungen kann eine Optimierung erfolgreich sein. Die Phasen drei bis fünf umfassen dann die systematische Überwachung, Identifizierung und Analyse von Problemen, die Umsetzung von Optimierungsmaßnahmen und die erneute Analyse zur Verifizierung des Erfolgs der eingeleiteten Maßnahmen (siehe Abbildung 1). Vor unreflektiertem »Herumschrauben« an Konfigurationsparametern und vergleichbaren »Tuningschnellschüssen« 19 Performanceoptimierung 2177.book Seite 20 Montag, 10. Juni 2013 11:30 11 Einleitung müssen wir warnen! Ziel dieses Buches ist es vielmehr, Ihnen die Möglichkeiten zu eröffnen, Performanceprobleme zu identifizieren und zu analysieren, um diese dann gezielt beheben zu können. Verständnis der Geschäftsprozesse Definition der Performanceziele Überwachung und Analyse Optimierung Verifikation und Reporting der Ergebnisse Abbildung 1 Performanceoptimierung in fünf Phasen Technische Optimierung Eine betriebswirtschaftliche IT-Anwendung besteht, technisch gesehen, aus zahlreichen Komponenten: aus logischen Komponenten, Prozessen wie Services, Threads oder Workprozessen und Speicherbereichen wie Puffern und Benutzerkontexten sowie physischen Komponenten wie Prozessoren (CPU), Hauptspeicher (RAM), Festplatten und Netzwerksegmenten. Diese Komponenten erlauben jeweils einen maximalen Durchsatz und eine optimale Antwortzeit. Ist das Zusammenspiel der Komponenten nicht ideal abgestimmt oder wird die Leistungsgrenze einzelner Komponenten erreicht, entstehen Wartesituationen, die sich negativ auf Durchsatz und Antwortzeit auswirken. Die Identifizierung, Analyse und Lösung solcher Probleme durch das Abstimmen der Komponenten aufeinander und die Verteilung der im System anfallenden Last sind die Aufgaben, die wir in diesem Buch als technische Optimierung bezeichnen. Optimierung von Applikationen Der zweite wichtige Bereich der Performanceoptimierung ist die Vermeidung unnötiger Last. Die Performance kann ebenso von ineffizienten Programmen oder dem ineffizienten Einsatz von Programmen negativ beeinflusst werden. Die Optimierung einzelner Programme bezeichnen wir als Applikationsoptimierung. Ziel der Optimierung ist, zunächst die Systemeinstellung und die Applikationen derart zu verbessern, dass auf der Basis der bereits vorhandenen Hardwareressourcen die gewünschte Performance erreicht 20 2177.book Seite 21 Montag, 10. Juni 2013 11:30 11 Proaktives Performancemanagement wird. Genügt dies nicht, müssen die Ressourcen entsprechend den gewonnenen Erkenntnissen erweitert werden. Wie viel Aufwand ist für Performanceanalyse und Tuning einer SAPLösung nötig? Die Antwort auf diese Frage hängt stark von der Systemgröße ab. Für eine kleine oder mittelgroße Installation ohne Modifikationen am SAP-Standard und ohne Eigenentwicklungen genügt in der Regel eine Performanceoptimierung kurz vor und kurz nach dem Produktivstart sowie nach größeren Veränderungen, z. B. durch Upgrades, Produktionsstarts neuer SAP-Lösungen, die Erhöhung der Benutzerzahl, größere Datenübernahmen oder Mandantentransporte. Darüber hinaus muss man natürlich nach Bedarf eingreifen, wenn akute Performanceprobleme vorliegen. Das Tuningpotenzial und damit auch der notwendige Analyse- und Optimierungsaufwand wachsen mit der Systemgröße an. Die Praxis zeigt, dass insbesondere kundeneigene Entwicklungen und Modifikationen am SAP-Standard zu Performanceengpässen führen. Ursache dafür sind meist ungenügende Tests, aber auch Zeitdruck und mangelnde Erfahrung der Entwickler. Den Extremfall bildet eine ständig weiterentwickelte Großinstallation mit vielen hundert Benutzern, komplizierten Prozessketten, einem Dutzend oder mehr Entwicklern (die oft verschiedenen Beratungsfirmen angehören und zu unterschiedlichen Zeiten und an unterschiedlichen Orten am System arbeiten) und einem ausgelagerten Systemmanagement. In einer solchen Systemumgebung ist es unumgänglich, dass eine kleine Gruppe von Administratoren und Entwicklern die Übersicht über das Gesamtsystem behält und die Performance nicht aus den Augen lässt. Wie viel Tuning ist nötig? Hilfe bei Performanceanalyse und Tuning bieten die Remote-Services der SAP. Namentlich sind dies der GoingLive Check, der Ihnen den Produktivstart Ihres Systems erleichtert, und der EarlyWatch Service, der Ihr produktives System überwacht und Ihnen weitere Optimierungen vorschlägt. Wie trägt ein proaktives Performancemanagement dazu bei, Ihr Ziel zu erreichen, eine betriebswirtschaftliche Anwendung erfolgreich zu betreiben? Wenn Sie dieses Ziel erreichen wollen, müssen Sie zwei Einflussfaktoren im Blick halten: die Zufriedenheit der Benutzer und die Kosten für den Betrieb der betriebswirtschaftlichen Anwendung. Die Kosten für den Betrieb ergeben sich zum einen aus den Kosten für Hardware (Infrastruktur, CPU, Hauptspeicher, Festplatten und 21 Proaktives Performancemanagement 2177.book Seite 22 Montag, 10. Juni 2013 11:30 11 Einleitung Netzwerke) und Betriebspersonal (Administration, Wartung, Fehleranalyse). Nicht vernachlässigen dürfen Sie aber die Kosten, die entstehen, wenn eine Anwendung nicht zur Verfügung steht oder nicht die geforderte Performance erreicht – der Schaden übersteigt in diesem Fall innerhalb weniger Stunden oder Tage den Betrag, der im Mittel in einem Jahr für die proaktive Performanceoptimierung investiert wird. Diese Risikokosten müssen ebenfalls den Kosten für ein proaktives Performancemanagement gegenübergestellt werden. Tabelle 1 führt Ihnen anhand zweier konkreter Beispiele den Nutzen des proaktiven Performancemanagements vor Augen. Proaktive Maßnahme Effekt im System Sofortiger Nutzen durch höhere Benutzerzufriedenheit Sofortiger Nutzen durch geringere Betriebskosten Vermindertes Eskalationsrisiko Optimierung von SQLAnweisungen Reduktion der Datenbanklast schnellere Antwortzeiten bei bestimmten Transaktionen Hardwareinvestitionen (Datenbankserver, Speichersystem) können gestreckt werden. Überlastung des Datenbanksystems wird vermieden. proaktives Datenmanagement (Datenvermeidung, Archivierung, Reorganisation) 왘 Reduktion des Datenbankwachstums 왘 kürzere Zeiten für Wartungsarbeiten an der Datenbank (Backup/Recovery, Upgrade, Migration, Systemkopie) Datenbankgröße bleibt »beherrschbar«. 왘 schnellere Antwortzeiten bei bestimmten Transaktionen 왘 Hardwareinvestitionen können gestreckt werden. 왘 kürzere Downtime bei Wartungsarbeiten 왘 geringerer Personalbedarf bei Wartungsarbeiten Tabelle 1 Beispiele für den Nutzen eines proaktiven Performancemanagements Aktuelle Entwicklungen Herausforderungen durch das Internet und mobile Geräte Mit dem Aufstieg des Internets, der Smartphones und Tablet-Computer vollzieht sich ein Paradigmenwechsel in der Welt der betriebswirtschaftlichen Software: Nicht mehr auf den hoch spezialisierten Angestellten an seinem PC zielt die Software ab, sondern auf Benutzer des Internets (extern oder firmenintern als Intranet) oder den 22 2177.book Seite 23 Montag, 10. Juni 2013 11:30 11 Aktuelle Entwicklungen Benutzer eines mobilen Gerätes. Der klassische Ansatz einer Prozessautomatisierung mit SAP R/3 basiert auf hoch spezialisierten Anwendern, die von festen Arbeitsplätzen über installierte SAP GUIs auf ihr ERP-System (Enterprise Resource Planning) zugreifen. Die Rolle dieses spezialisierten Vermittlers, der ausgebildet sein muss, um Software zu bedienen, wird allerdings an vielen Stellen zunehmend überflüssig. Stattdessen erhält der Endbenutzer durch Internet und Mobilgerät direkten Zugriff auf die ERP-Systeme der Unternehmen. Heute können z. B. in vielen Unternehmen die Mitarbeiter über das Intranet ihre Arbeits- und Fehlzeiten, Reisekostenabrechnungen etc. selbst in das System eingeben, wo dies früher über zentrale Benutzer geschah. Kunden bestellen heute vermehrt ihre Produkte direkt über das Internet und nicht mehr über den Umweg eines Briefes, Faxes oder Telefonanrufs bei einem Vertriebscenter. Die Erwartungen, die der Anwender einer Internet- oder mobilen Anwendung an die Bedienbarkeit und Performance hat, sind ungleich höher als die des klassischen Angestellten an sein ERP-System. Der Angestellte ist auf »sein« ERP-System angewiesen, und wenn es ihm normalerweise dabei hilft, seine tägliche Arbeit zu vereinfachen, wird er es akzeptieren und auch kleinere Fehler oder Performanceschwächen in Kauf nehmen. Ganz anders der Internetbenutzer: Funktionieren die Anwendungen, die ihm im Internet angeboten werden, nicht einfach und performant, kann er sofort zur Konkurrenzfirma wechseln und dort z. B. seine Einkäufe tätigen (»Die Konkurrenz ist nur einen Mausklick entfernt.«). Hinzu kommt: Das Internet macht nicht um 17 Uhr Feierabend – von einer E-Business-Lösung im Internet werden Verfügbarkeit und Performance an 365 Tagen 24 Stunden lang gefordert. Nutzer von mobilen Anwendungen legen die Maßstäbe in Bezug auf Bedienbarkeit und Performance an eine SAP-Anwendung an, die sie auch von anderen Mobile Apps gewohnt sind. Mit SAP HANA ist es SAP gelungen, ein Produkt auf den Markt zu bringen, das Analysten bereits heute als die wichtigste Innovation seit Jahren im Bereich von Business Software bezeichnen. Kern der Innovation ist eine Hauptspeicherdatenbank, um die sich weitere Services, z. B. ein als XS-Engine bezeichneter Applikationsserver, gruppieren. In diesem Buch gehen wir ausschließlich auf die HANADatenbankplattform ein, da zu den weiteren Services die Felderfahrungen noch fehlen. 23 SAP HANA 2177.book Seite 24 Montag, 10. Juni 2013 11:30 11 Einleitung Das wichtigste Argument für die Einführung von SAP HANA ist Performance! SAP HANA macht sich die Verfügbarkeit von riesigen Hauptspeichern und massiv parallelen Prozessorarchitekturen zu Nutze und setzt diese konsequent durch modernste Softwarearchitektur 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 die zweite Frage ist – nach der festen Überzeugung des Autors – ein doppeltes Nein: Zum einen kann auch SAP HANA keine Wunder vollbringen, wenn Ihr Programm ganze Datenbanktabellen in den Applikationsserver liest und – schlimmer noch – die Daten weiter zum Webbrowser des Anwenders schickt. Der Löwenanteil der Laufzeit entfällt dann auf den Applikationsserver, das Netzwerk und den Browser. Die grundlegenden Regeln zur performanten Programmierung sind auch bei SAP HANA nicht außer Kraft gesetzt! Ein zweites Nein ergibt sich aus der Tatsache, dass jeder technischen Innovation »Begehrlichkeiten« oder, anders formuliert, Herausforderungen entgegenstehen. Eine dieser Herausforderungen heißt Big Data. Big Data Als Big Data bezeichnet man das Phänomen, dass immer mehr Daten entstehen, die für Unternehmen von Interesse sind, diese Daten aber bisher nicht oder nur unzureichend ausgewertet und nutzbar gemacht werden können. Beispiele für solche Daten sind Beiträge in sozialen Netzwerken, Protokolle von Webzugriffen, Bewegungsdaten von Personen (z. B. über Mobilfunkortungen oder Posts mit Lokationsdaten in sozialen Netzwerken) und Produkten (die z. B. über RFID-Chips erfasst werden), Daten von Kameras, Mikrofonen und sonstigen Sensoren, Finanztransaktionen und Börsendaten sowie Verbrauchsdaten im Energiesektor. Unternehmen sind interessiert daran, diese Daten zu erfassen, zu verknüpfen, auszuwerten und so über ihre Kunden, Märkte und Produkte wertvolle Einsichten zu gewinnen. Als Beispiel sei ein Produktionsplaner in der Konsumgüterindustrie genannt. Um vorausschauender planen zu können, werden ihm in Zukunft nicht nur die Produktionszahlen der Vergangenheit und aktuelle Bestellungen als Grundlage dienen, sondern auch die aktuellen Trends der sozialen Netzwerke. Kleine »Fehler« – große Wirkung All diesen Datenquellen ist gemein, dass ihre Menge die traditioneller betriebswirtschaftlicher Daten (sogenannte Stamm- und Bewegungsdaten) um ein Vielfaches übersteigt. Übertragen auf unsere Performancefrage heißt das: Ein nicht performanceoptimiertes System 24 2177.book Seite 25 Montag, 10. Juni 2013 11:30 11 Zu diesem Buch oder Programm hat einen viel höheren Effekt als in einem »traditionellen« SAP Business Suite-System – als Konsequenz folgern wir: Auch in Zukunft wird Performance-Know-how ein wertvolles Gut sein. Die Anforderungen an eine offene, flexible Softwarearchitektur erfordern spezialisierte, für sich autark operierende Softwarekomponenten, die über Schnittstellen miteinander verknüpft sind. Dies bedeutet, dass ein Geschäftsprozess mehrere Softwarekomponenten involviert. Die stetig wachsende Anzahl von Lösungen und Komponenten ist eine Herausforderung für die Administration in den Rechenzentren – die Anzahl hat sich von dem »überschaubaren« SAP R/3 (mit SAP-Instanzen, Datenbank, Hardware/Betriebssystem) zu einer ständig wachsenden Technologiepalette entwickelt – Produkte eingeschlossen, die SAP nicht selbst produziert, sondern für die sie als Reseller auftritt. IT-Services Konsequenterweise steuern die Betreiber von Geschäftsprozessen diesem Trend entgegen, indem sie immer mehr Servicepartner in den Betrieb des Geschäftsprozesses integrieren. Dabei kann dieses Outsourcing nur die Hardware (Rechnerleistung, Festplattenspeicher, Netzwerkressourcen etc.) oder auch die Applikation selbst (Application Service Providing, ASP) betreffen; z. B. kann man die Dienstleistung eines Internetproduktkatalogs komplett an einen Serviceanbieter vergeben, anstatt die Katalogsoftware selbst zu betreiben. Das bedeutet, dass nicht nur über Hardware- und Softwarekomponenten, sondern sogar über Firmen- und Kompetenzgrenzen hinweg Überwachung geleistet werden muss. Insgesamt ergeben sich also völlig neue Anforderungen an die Administration und Überwachung von SAP-Lösungen, die mit herkömmlichen Konzepten nicht zu bewältigen sind. Zu diesem Buch Die in diesem Buch dargestellten Methoden der Performanceanalyse und -optimierung entsprechen den Verfahren, die ursprünglich von den Experten des EarlyWatch Services und des GoingLive Checks verwendet und in den SAP-Basis-Trainings Workload Analysis und Optimierung von ABAP-Programmen vermittelt werden. Mit jeder neuen Auflage dieses Buches – mittlerweile der siebten – wird die Chance 25 Grundlagen des Buches 2177.book Seite 26 Montag, 10. Juni 2013 11:30 11 Einleitung genutzt, aktuelle Trends der Produktentwicklung bei SAP und – soweit relevant – Entwicklungen der IT-Welt allgemein adäquat zu behandeln. In dieser Auflage sind die Java-Themen praktisch komplett neu geschrieben und in einem Kapitel gebündelt worden. Der wichtigsten Neuerung bei SAP seit vielen Jahren – SAP HANA – ist ein weiteres neues Kapitel gewidmet, das sich zunächst auf die HANA-Datenbankplattform fokussiert. Weitere HANA-Services werden aufgrund der fehlenden Felderfahrung noch nicht behandelt. Alle weiteren Kapitel sind für diese Auflage überarbeitet und aktualisiert worden, z. B. wird das neue ABAP-Lastverteilungskonzept (neu zu SAP NetWeaver 7.40) beschrieben, und das Thema Background-RFCs wurde aufgenommen. In Anhang A, »Datenbankmonitore«, ist ein Abschnitt zur Datenbank Sybase ASE hinzugekommen. Verständnis der Geschäftsprozesse Definition des Service Level Managements Kapitel 1: Performancemanagement Überwachung und Analyse Kapitel 2: Systemüberwachung AS ABAP Kapitel 4: Programmanalyse Kapitel 3: Workload-Analyse AS ABAP DB DB AS ABAP DB Detailanalyse und Optimierung Applikationsserver Datenbank Kapitel 5: Sizing, Lastverteilung AS ABAP Kapitel 11: SQL-Anweisungen Kapitel 8: SAP GUI und Internetanbindung AS Java AS ABAP DB Kapitel 12: Pufferung AS ABAP Kapitel 6: Speicherkonfiguration AS ABAP Kapitel 7: Lastverteilung, Remote Function Calls AS ABAP AS ABAP DB Kapitel 10: SAP JVM und Java-Programme DB AS ABAP DB Kapitel 13: SAP BW Kapitel 14: TREX AS Java Abbildung 2 Die Kapitel dieses Buches 26 AS Java Kapitel 9: Sperren Kapitel 15: HANA 2177.book Seite 27 Montag, 10. Juni 2013 11:30 11 Zu diesem Buch Abbildung 2 stellt die Kapitel dieses Buches orientiert an den fünf Phasen der Performanceoptimierung im Überblick dar. Kapitel 1, »Performancemanagement einer SAP-Lösung«, wendet sich sowohl an SAP-Administratoren und SAP-Berater als auch an Anwendungsentwickler und SAP-Projektleiter. Es behandelt auf einem nicht technischen Niveau die folgenden grundlegenden Fragen zur Performanceanalyse: 왘 Welche Vorkehrungen müssen getroffen werden, um eine optimale 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 der Praxis oft ein Netz von Partnern, die jeweils Teilleistungen erbringen. Viele Teile werden von unterschiedlichen, manchmal externen Serviceprovidern erbracht. Um diese Komplexität in den Griff zu bekommen, führen die meisten Leistungsanbieter und Kunden ein Service Level Management (SLM) ein. Als SLM bezeichnet man eine strukturierte proaktive Methode, die das Ziel hat, den Benutzern einer IT-Anwendung ein adäquates Serviceniveau zu garantieren – in Übereinstimmung mit den betriebswirtschaftlichen Zielen des Auftraggebers und bei optimalen Kosten. Wir zeigen in diesem Buch, mit welchen Werkzeugen und Methoden Sie ein SLM für eine SAP-Lösung einführen. In den Kapiteln 2 bis 4 finden Sie die Darstellung der Performanceanalyse anhand des SAP NetWeaver Application Servers (AS) ABAP. Nach Lektüre dieser Kapitel sind Sie in der Lage, eine systematische Performanceanalyse für den AS ABAP inklusive Datenbank und Betriebssystem durchzuführen. In diesem Buch folgen wir zunächst der Strategie der Bottom-up-Analyse und beginnen in Kapitel 2, »Analyse von Hardware, Datenbank und ABAP-Applikationsserver«, mit den Untersuchungen der Teilsysteme Betriebssystem, Datenbank, SAP-Speicherkonfiguration und SAP-Workprozesse. Gleichzeitig werden Lösungsvorschläge angeboten, die den Administrator oder Berater befähigen sollen, die wichtigsten Performanceprobleme zu lösen. Für kleine und mittelgroße Installationen wird diese Stufe des Tunings in vielen Fällen bereits ausreichen. 27 Aufbau 2177.book Seite 28 Montag, 10. Juni 2013 11:30 11 Einleitung Anschließend wird in Kapitel 3, »Workload-Analyse«, die komplexere Workload-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. mit den Hilfsmitteln Einzelsatzstatistik, SQL-Trace und ABAP-Laufzeitanalyse. Die weiteren Kapitel 5 bis 15 vermitteln Wissen, das für eine umfassende Performanceanalyse notwendig ist. Sie wenden sich an SAPBetreuer, die für das performante Funktionieren großer Systeme verantwortlich sind und die das Tuningpotenzial ihrer Systeme voll ausschöpfen wollen und müssen. Kapitel 5 bis 15 sind weitgehend eigenständige Einheiten und können mit Kenntnis der ersten vier Kapitel in beliebiger Reihenfolge gelesen werden. Eventuelle Abhängigkeiten sind am Anfang jedes Kapitels vermerkt. Behandelt werden in den Kapiteln 5 bis 10 die Themen, die sich auf den Applikationsserver und den Präsentationsserver beziehen: 왘 Kapitel 5, »Hardware-Sizing, System- und Lastverteilung«: Eine optimal ausgelegte Hardware ist Voraussetzung dafür, dass auf der einen Seite keine Hardwareengpässe entstehen, dass aber auf der anderen Seite nicht zu hohe Kosten durch unnötig vorgehaltene Hardware anfallen. Serverkonsolidierung – d. h. die Konzentration aller Services auf wenigen, sehr leistungsfähigen Rechnern – ist zweifellos ein wichtiger Trend auf dem IT-Markt der letzten Jahre. Wir stellen dar, was Sie beachten sollten, wenn Sie diese Technologien effizient nutzen wollen. 왘 Kapitel 6, »Speicherkonfiguration« (Memory Management): Die Konfiguration der von der SAP-Komponente allokierten Speicherbereiche hat wesentlichen Einfluss auf die Performance. 왘 Kapitel 7, »Lastverteilung und Remote Function Calls«: Eine optimale Lastverteilung von Webanfragen, Dialog-, Verbuchungs- und Hintergrundaufträgen hilft dabei, Hardware optimal zu nutzen und Engpässe aufgrund falscher Konfiguration zu vermeiden. Die Performance von Schnittstellen zwischen Softwarekomponenten trägt ebenfalls maßgeblich zur Performance der gesamten Lösung bei. Bereits in der Vergangenheit waren E-Business-Lösungen, die aus nur einem monolithischen R/3-System bestanden, eine Selten- 28 2177.book Seite 29 Montag, 10. Juni 2013 11:30 11 Zu diesem Buch heit – die Regel sind offene, über Schnittstellen verbundene Lösungen aus mehreren Komponenten. 왘 Kapitel 8, »SAP GUI und Internetanbindung«: Analysen und Konfigurationsvorschläge zeigen das Optimierungspotenzial bei der Anbindung der GUIs (klassisches SAP GUI oder Webbrowser) an die Applikation auf. Im Detail werden hier die Performanceaspekte von SAP GUI Controls, des Internet Transaction Servers (ITS), von Business Server Pages und von Web Dynpro für ABAP behandelt. 왘 Kapitel 9, »Sperren«: Datenbank- und SAP-Sperren gewährleisten die Datenkonsistenz. Durch eine optimierte Verwaltung von Sperren (z. B. durch den ATP-Server oder die Pufferung von Nummernkreisen) werden Durchsatzengpässe vermieden. 왘 Kapitel 10, »Optimierung der Java Virtual Machine und von JavaProgrammen«: In diesem Kapitel finden Sie die Beschreibung der Werkzeuge, mit denen Sie die Performanceanalyse der Java Virtual Machine (SAP JVM) und von Java-Programmen durchführen können. Kapitel 11 eröffnet die Reihe der Kapitel mit Datenbankthemen und ist Voraussetzung für die folgenden Kapitel 12 bis 15: 왘 Kapitel 11, »Optimierung von SQL-Anweisungen«: Ineffektive SQL-Anweisungen beanspruchen die Datenbank übermäßig und werden daher zum Problem für die Performance der gesamten Anwendung. In diesem Kapitel stellen wir die Detailanalyse für »teure« SQL-Anweisungen sowie Optimierungsmöglichkeiten durch Datenbankindizes und durch Programmoptimierung (»fünf goldene Regeln«) dar. 왘 Kapitel 12, »SAP-Pufferung«: Die Pufferung von Tabellen auf den Applikationsservern beschleunigt den Zugriff auf oft gelesene Daten und dient der Entlastung der Datenbank. 왘 Kapitel 13, »Optimierung von Anfragen an SAP NetWeaver Business Warehouse«: Business-Warehouse-Anfragen sind spezielle SQL-Anweisungen, die in der Regel große Datenmengen bearbeiten – für diese Art von Anfragen existieren spezielle Optimierungsmöglichkeiten. 왘 Kapitel 14, »Optimierung von Suchanfragen mit TREX«: TREX wird zur Optimierung von text- und attributbasierten Suchanfra- 29 2177.book Seite 30 Montag, 10. Juni 2013 11:30 11 Einleitung gen sowie von Business-Warehouse-Anfragen (»BW Accelerator«) genutzt – als Alternative zu herkömmlichen Datenbankindizes und Aggregationstabellen. 왘 Kapitel 15, »Optimierung von Datenbankanfragen mit SAP HANA«: Dem neuen »Wunderkind« von SAP ist ein eigenes Kapitel gewidmet, das in die Grundlagen, Werkzeuge und Methoden zur Performanceanalyse und -optimierung einführt. Zielgruppen Kenntnisse in der Performanceoptimierung von SAP-Systemen und -Anwendungen sind für SAP-Administratoren, SAP-Anwendungsbetreuer, SAP-Entwickler und SAP-Projektleiter von größtem Nutzen – an diese Zielgruppen richtet sich dieses Buch. Jedem Kapitel ist am Ende der Einleitung ein kurzer Abschnitt mit dem Titel »Wann sollten Sie dieses Kapitel lesen« vorangestellt. Aus diesem ergibt sich die genaue Zielgruppe des jeweiligen Kapitels. Voraussetzungen Dieses Buch setzt an den Stellen, an denen es um die konkrete Umsetzung von Empfehlungen geht, Kenntnisse in der Administration von SAP-Komponenten in Theorie und Praxis voraus. Insbesondere die Bedienung des Computer Center Management Systems (CCMS) sollte Ihnen vertraut sein. Als gute Vorbereitung kann z. B. der Band »SAP NetWeaver 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 Programmiersprache ABAP und die Funktionsweise von relationalen Datenbanken und SQL voraus. Grenzen des Buches In den folgenden Bereichen stößt das Buch an seine Grenzen: 왘 Hardware- und Netzwerktuning Ein Engpass bei CPU, Hauptspeicher, I/O oder Netzwerk lässt sich zwar aus dem SAP-System heraus mit großer Wahrscheinlichkeit identifizieren, für eine detaillierte Analyse werden jedoch die Werkzeuge der Hardware- bzw. Netzwerkanbieter benötigt. Angesichts der unübersehbaren Anzahl der angebotenen Produkte muss dieser Bereich (insbesondere das Tuning der Festplatten) ausgeklammert bleiben. 왘 Datenbanken SAP bietet im Computer Center Management System (CCMS) Werkzeuge an, die die Administration und Analyse der verschiede- 30 2177.book Seite 31 Montag, 10. Juni 2013 11:30 11 Zu diesem Buch nen Datenbankensysteme so weit wie möglich vereinheitlichen. Wer jedoch tiefer in das Datenbanktuning einsteigt, kommt nicht daran vorbei, sich mit den unterschiedlichen Architekturen der Datenbanksysteme zu beschäftigen. Dabei ist es unmöglich, die Feinheiten aller mit SAP-Lösungen eingesetzten Datenbanksysteme in diesem Buch in der gebührenden Tiefe zu behandeln. Allerdings ist dies auch nicht notwendig, da zu allen Datenbanksystemen Literatur zum Tuning vorhanden ist. Dieses Buch kann und will diese Literatur nicht ersetzen. Sein Schwerpunkt liegt vielmehr im SAP-spezifischen Kontext des Datenbanktunings und in der Vermittlung datenbanksystemübergreifender Konzepte. Die konkreten Beispiele betreffen immer einzelne Datenbanksysteme. Im Anhang finden Sie eine Übersicht über die wichtigsten Monitore zur Datenbankanalyse für alle Datenbanksysteme. 왘 Applikationstuning Viele Performanceprobleme lassen sich nur mit detailliertem Anwendungswissen und Kenntnis der einzelnen SAP-Lösungen lösen. Oft ist es eine Änderung im Customizing, die die Lösung des Problems bringt. Know-how zum Tuning einzelner SAP-Lösungen ist nicht Teil dieses Buches. Allerdings vermittelt es Ihnen Analysestrategien, sodass Sie Performanceprobleme auf bestimmte Applikationen eingrenzen und somit an den richtigen Entwickler oder Berater adressieren können. Eine Frage, die bereits vor Erscheinen des Buches heftig diskutiert wurde, ist, inwieweit release- und zeitabhängige Informationen Inhalt des Buches sein können; dies betrifft z. B. Menüpfade, Empfehlungen für Konfigurationsparameter und Richtwerte für Performancekennzahlen. Eine neue Version, ein Patch (der SAP-Komponente, der Datenbank oder des Betriebssystems), eine neue Rechnergeneration – diese und andere Faktoren können mit einem Schlag alte Informationen wertlos machen; im schlimmsten Fall können sich veraltete Empfehlungen sogar kontraproduktiv auf die Performance auswirken. Dieses Risiko ist uns bewusst. Dennoch haben wir uns dafür entschieden, zeitabhängige Informationen und Regeln in das Buch aufzunehmen. Nur so kann Ihnen dieses Buch als Nachschlagwerk für die tägliche Arbeit in der SAP-Administration dienen. Auf der anderen Seite ist klar: Dieses Buch ist kein Gesetzbuch, und wer Performanceoptimierung nur als stures Befolgen von Regeln 31 Releaseabhängigkeit 2177.book Seite 32 Montag, 10. Juni 2013 11:30 11 Einleitung betreibt, handelt fahrlässig. Die direkte Auseinandersetzung mit der Lösung, der SAP-Onlinehilfe und aktuellen SAP-Hinweisen im SAP Service Marketplace kann dieses Buch nicht ersetzen, sondern nur fördern. SAP NetWeaver 7.30 Alle Angaben zu Menüpfaden, Bezeichnungen in den Bildschirmen der Performancemonitore und Richtwerten für Performancekennzahlen beziehen sich – sofern nicht anders vermerkt – auf SAP NetWeaver 7.30. An einigen Stellen geben wir bereits einen Ausblick auf SAP NetWeaver 7.40. Hinweise zur Lektüre In diesem Buch finden Sie mehrere Orientierungshilfen, die Ihnen die Arbeit mit dem Buch erleichtern sollen. In hervorgehobenen Informationskästen sind Inhalte zu finden, die wissenswert und hilfreich sind, aber etwas außerhalb der eigentlichen Erläuterung stehen. Damit Sie die Informationen in den Kästen sofort einordnen können, haben wir die Kästen mit Symbolen gekennzeichnet: Die mit diesem Symbol gekennzeichneten Tipps geben Ihnen spezielle Empfehlungen, die Ihnen die Arbeit erleichtern können. In Kästen, die mit diesem Symbol gekennzeichnet sind, finden Sie Informationen zu weiterführenden Themen oder wichtigen Inhalten, die Sie sich merken sollten. Dieses Symbol weist Sie auf Besonderheiten hin, die Sie beachten sollten. Es warnt Sie außerdem vor häufig gemachten Fehlern oder Problemen, die auftreten können. Beispiele, durch dieses Symbol kenntlich gemacht, weisen auf Szenarien aus der Praxis hin und veranschaulichen die dargestellten Funktionen. www.sap-press.de Wie schon für die früheren Auflagen werden wir Aktualisierungen und ggf. Korrekturen zum Buch auf der Verlagswebsite (www.sappress.de) bereitstellen. 32 2177.book Seite 75 Montag, 10. Juni 2013 11:30 11 Mit der Analyse der Hardwareressourcen, der Datenbank sowie der Workprozesse und Speicherbereiche des SAP NetWeaver AS ABAP steigen wir – bottom-up – in die Performanceanalyse 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 Performanceanalysen der Hardware, der Datenbank, der SAP-Speicherkonfiguration und der SAP-Workprozesse des SAP NetWeaver Application Servers ABAP. Am Ende eines jeden Abschnitts finden Sie Flussdiagramme, die die wichtigsten Analysepfade zusammenfassen und die Abhängigkeiten zwischen den Analysen verdeutlichen. Im letzten Abschnitt gehen wir auf den zentralen Überwachungsmonitor ein, der Performanceindikatoren aus allen Bereichen integriert. Zu diesen Analysen erhalten Sie sofort Optimierungsvorschläge, sofern dies ohne umfangreichere Erklärungen möglich ist. Um auch einem in der Performanceanalyse unerfahrenen Berater oder Administrator einen schnellen Einstieg zu ermöglichen, verzichten wir bewusst auf Hintergrundinformationen. So wird z. B. beschrieben, wie Sie das SAP Extended Memory überwachen und einstellen, ohne den Begriff SAP Extended Memory zu erklären. Umfassendere Informationen finden Sie anschließend in den Kapiteln 5 bis 15. Dieser Aufbau trägt unserer Erfahrung Rechnung, dass es möglich ist, viele Performanceprobleme im Bereich von Betriebssystem, Datenbank und SAP-Basis anhand einfacher Handlungsanweisungen zu lösen, ohne sich vorher eingehend mit den Details der Architektur zu beschäftigen. 75 2177.book Seite 76 Montag, 10. Juni 2013 11:30 11 2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver Wann sollten Sie dieses Kapitel lesen? Dieses Kapitel sollten Sie lesen, wenn Sie die Performance des SAPSystems, der Datenbank oder des Betriebssystems vom SAP-System aus technisch überwachen und optimieren wollen. 2.1 Begriffsklärungen Die Begriffe Rechner, Server, Applikationsserver, SAP-Instanz, Datenbank, Datenbankserver und Datenbankinstanz werden in diesem Buch wie folgt verwendet: Rechner Ein Rechner (oder Computer) ist eine physische Maschine mit CPU, Hauptspeicher, IP-Adresse etc. SAP-Applikationsinstanz Eine SAP-Applikationsinstanz, auch kurz als SAP-Instanz bezeichnet, ist eine administrative Einheit: Sie besteht aus einem Satz von SAPWorkprozessen, die von einem Dispatcher verwaltet werden, sowie aus einem Satz von SAP-Puffern im Shared Memory des Rechners, auf den die Workprozesse zugreifen. Eine SAP-Applikationsinstanz kann eine ABAP-Applikationsinstanz (SAP NetWeaver Application Server ABAP, kurz AS ABAP oder eine Java-Applikationsinstanz (SAP NetWeaver Application Server Java, kurz AS Java) sein. Es kann mehrere SAP-Instanzen auf einem Rechner geben. In diesem Fall existieren mehrere Dispatcher und mehrere Puffersätze. Ein Applikationsserver ist ein Rechner, auf dem mindestens eine SAP-Instanz läuft. Datenbank Jedes SAP-System besitzt genau eine Datenbank. Als Datenbank bezeichnen 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, eine administrative Einheit, die den Zugriff auf eine Datenbank erlaubt. Eine Datenbankinstanz besteht aus Datenbankprozessen und einem Satz von Datenbankpuffern im Shared Memory eines Rechners. Ein Datenbankserver ist ein Rechner, auf dem mindestens eine Datenbankinstanz läuft. Ein Rechner kann zugleich Datenbank- und Applikationsserver sein, wenn eine Datenbankinstanz und eine SAP-Instanz darauf laufen. In der Regel operiert im SAP-Umfeld auf einer Datenbank nur eine Datenbankinstanz. Beispiele für Datenbanksysteme, bei denen auf 76 2177.book Seite 77 Montag, 10. Juni 2013 11:30 11 Hardwareanalyse eine Datenbank mehrere Datenbankinstanzen zugreifen, sind DB2 und Oracle Parallel Server. Die Besonderheiten solcher parallelen Datenbanksysteme werden in diesem Buch nicht behandelt. Als SAP-Systeme bezeichnen wir Softwarekomponenten von SAP mit dem SAP NetWeaver AS als Grundlage. Im Einzelnen sind dies SAP ERP, SAP NetWeaver BW, SAP APO, SAP SRM und SAP NetWeaver Portal. SAP-System Im Sinne dieser Terminologie kann also z. B. ein SAP ERP-System aus ein oder zwei Systemen bestehen, je nachdem, ob der Java- und der ABAP-Teil auf einem gemeinsamen System mit einer Datenbank (»Double-Stack«) oder auf zwei Systemen mit getrennten Datenbanken betrieben werden – dieser Terminologie folgt im Übrigen auch der SAP Solution Manager. Der Begriff Server wird in der Dokumentation und der Literatur mehrdeutig 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 wir auch ABAP-Server bzw. Java-Server als Kurzformen für den SAP NetWeaver Application Server (AS) ABAP bzw. Java. 2.2 Server Hardwareanalyse Das Werkzeug zur Analyse von Hardwareengpässen und Betriebssystemproblemen ist der Betriebssystemmonitor. Um diesen Monitor für den Applikationsserver zu starten, auf dem Sie zurzeit angemeldet sind, wählen Sie: Betriebssystemmonitor Werkzeuge 폷 Administration 폷 Monitor 폷 Performance 폷 Betriebssystem 폷 Lokal 폷 Betriebssystemmonitor Alternativ können Sie den Transaktionscode ST06 verwenden. Sie gelangen auf den Hauptbildschirm des Betriebssystemmonitors. Zu Basis-Version 7.10 wurde der Betriebssystemmonitor überarbeitet. Nach dieser Überarbeitung führen die drei Transaktionscodes OS06, OS07 und ST06 auf einen Monitor, mit dem sowohl der lokale als auch entfernte Rechner überwacht werden können. Bei Versionen vor 7.10 stehen die neuen Transaktionen unter den Transaktionscodes OS06N, OS07N und ST06N zur Verfügung, mit den Transaktions- 77 Aufruf und Verfügbarkeit 2.2 2177.book Seite 78 Montag, 10. Juni 2013 11:30 11 2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver codes OS06, OS07 und ST06 erreichen Sie nach wie vor die älteren Transaktionen. Alle Informationen, die wir in diesem Buch besprechen, stehen Ihnen auch in den alten Transaktionen zur Verfügung. Die Detailanalysen finden Sie über die Navigation mit der Schaltfläche Detail Analysis Menu. Der Betriebssystemmonitor lässt sich auch aus der Serverübersicht heraus aufrufen: Werkzeuge 폷 Administration 폷 Monitor 폷 Systemüberwachung 폷 Server (Transaktionscode SM51) Positionieren Sie anschließend den Cursor auf dem gewünschten Applikationsserver, 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 78 2177.book Seite 79 Montag, 10. Juni 2013 11:30 11 Hardwareanalyse 2.2 Im linken oberen Fenster finden Sie die Auswahl der Rechner, die überwacht werden. Dort können Sie einen Rechner auswählen, den Sie analysieren wollen. Im linken unteren Fenster wählen Sie die Analysedaten aus. Die Daten zum ausgewählten Rechner und zur ausgewählten Analyse finden Sie im rechten Fenster. Standardmäßig finden Sie alle Rechner, auf denen SAP-ABAP-Instanzen installiert wurden, in der Auswahlliste. Grundsätzlich lässt sich aber jeder Rechner in den Remote-Betriebssystemmonitor einbinden, sofern dort ein Monitoring-Agent installiert ist. Dringend empfohlen wird dies für Rechner, auf denen eine Stand-alone-Datenbank, eine SAP-Java-Instanz oder ein TREX läuft. Beachten Sie, dass Sie diesen Monitor auch dann einrichten sollten, wenn Sie mit einem Werkzeug eines anderen Herstellers die Auslastung Ihrer Rechner überwachen. Sollten Sie Support von SAP benötigen, kann ein Experte von SAP nur über den SAP-eigenen Monitor die Rechner analysieren. 2.2.1 SAP-Support Analyse eines Hardwareengpasses (CPU und Hauptspeicher) Eine Übersicht über die wichtigsten Betriebssystem- und Hardwaredaten finden Sie unter dem Punkt Snapshot in der Analyseauswahl des Betriebssystemmonitors (siehe Abbildung 2.1). Alle Daten des Betriebssystemmonitors werden vom Hilfsprogramm saposcol im Zehn-Sekunden-Rhythmus aufgefrischt. Ein Auffrischen der Daten mit der entsprechenden Drucktaste ergibt also nur dann neue Daten, wenn zehn Sekunden verstrichen sind. Im Abschnitt CPU finden Sie die Felder Benutzerauslastung, Systemauslastung und Leerlauf. Diese Werte zeigen an, wie viel Prozent der CPU-Kapazität augenblicklich von Benutzerprozessen (d. h. vom SAPSystem, der Datenbank und weiteren Prozessen) und vom Betriebssystem selbst genutzt werden und wie viel Prozent derzeit frei sind. Das Feld Anzahl CPUs gibt die Anzahl der CPU-Fäden (»Threads«) an. Mittlere Prozesswartezeit ist die Anzahl der Prozesse, die auf einen freien Prozessor warten. Dieser Wert wird im Mittel über eine Minute, über fünf Minuten und über 15 Minuten angegeben. Die weiteren Werte im Abschnitt CPU sind für die Performanceanalyse weniger wichtig. Tabelle 2.1 gibt Ihnen einen Überblick über die Felder des Betriebssystemmonitors. 79 CPU-Auslastung 2177.book Seite 80 Montag, 10. Juni 2013 11:30 11 2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver 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 mindestens 20 % betragen, optimalerweise aber 35 %. Anzahl der CPUs Anzahl der CPU-Threads Mittlere Prozesswartezeit 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 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 mit 2.93 GHz Taktfrequenz«. Was bedeuten die Angaben über die Anzahl der Prozessoren, 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, Programme auszuführen. Dabei unterscheidet man zwischen Einkernprozessoren und Mehrkernprozessoren. Mehrkernprozessoren verfügen über mehrere vollständig ausgebaute Verarbeitungseinheiten (Kerne) auf einem Chip. Die einzelnen Kerne 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 sich für diese Kerne mehrere Warteschlangen, aus, zwischen denen der Kern hinund herschaltet. Um diesen Wechsel zu optimieren, besitzt jeder Thread einen eigenen Registersatz, einschließlich Stack Pointer und Program Counter, damit kann ohne zusätzliche Prozessorzyklen zwischen den Threads geschaltet werden. Diese hardwareseitigen Threads sollten Sie jedoch nicht mit den Threads verwechseln, die die Anwendungsprozesse erzeugen (User- oder SoftwareThreads). Innerhalb eines Prozesses der Datenbank, des ABAP-, Java- oder TREX-Servers können mehrere (Software-)Threads erzeugt werden, die vom Betriebssystem in Zeitscheiben ausgeführt werden. Den Wechsel zwischen den (Software-)Threads bezeichnet man als Kontextwechsel. Unter diesem Gesichtspunkt kann man also sagen, dass zusätzliche (Hardware-)Threads Kontextwechsel zwischen (Software-)Threads begünstigen und damit den vorhandenen Kern besser auslasten helfen, allerdings von der Leistungssteigerung nicht ganz an einen zusätzlichen Kern heranreichen. 80 2177.book Seite 81 Montag, 10. Juni 2013 11:30 11 Hardwareanalyse Der Abschnitt Memory enthält Informationen über den physisch vorhandenen Hauptspeicher (Feld Physischer Speicher) und Werte über das Betriebssystem-Paging. Unter Swap finden Sie den aktuell allokierten Auslagerungsspeicher (Swap-Space). Der Auslagerungsspeicher muss größer als die Summe des konfigurierten Speicherbereichs sein. 2.2 Hauptspeicherauslastung Programmabbrüche durch Speicherknappheit Ist die Summe aus physischem Speicher und Auslagerungsspeicher kleiner als der vom SAP-System, von der Datenbank und anderen Programmen benötigte Speicher, kann es zu Speicherverwaltungsfehlern (d. h. zu Programmabbrüchen innerhalb des SAP-Systems), im schlimmsten Fall sogar zum Abbruch des Betriebssystems, kommen. Sie sollten also in jedem Fall den Auslagerungsspeicher ausreichend dimensionieren. Um einen Überblick über die CPU-Auslastung der letzten 24 Stunden zu erhalten, wählen Sie im Betriebssystemmonitor die Analyse Vorige Stunden 폷 CPU. Sie gelangen auf den Bildschirm Vorige Stunden CPU. Die Bedeutung der Felder ist dieselbe wie im Hauptbildschirm, 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. Historien: CPU und Hauptspeicher Wann liegt ein CPU- bzw. ein Hauptspeicherengpass vor? Im Stundenmittel sollte der freie CPU-Anteil Leerlauf mindestens 20 % betragen, um auf kurze Lastspitzen reagieren zu können. Erwünscht sind sogar eher 35 % freie CPU-Kapazität. Für die PagingRate gelten folgende Richtwerte: 왘 Bei Rechnern, die eine Datenbank, eine Java-Instanz oder einen TREX beherbergen, sollten nur sehr geringe Paging-Raten zu beobachten sein, d. h., sie sollten so dimensioniert sein, dass der verfügbare Hauptspeicher den konfigurierten Speicherbereichen entspricht. 왘 Bei Rechnern, die ausschließlich ABAP-Instanzen tragen, können mäßige Paging-Raten von bis zu 20 % des physischen Hauptspeichers pro Stunde toleriert werden. Dabei ist für Betriebssysteme, die kontinuierlich Speicher auslagern (z. B. Microsoft Windows), die Paged-in-Rate entscheidend, für andere Betriebssysteme hingegen, die erst bei Bedarf auslagern (die 81 Richtwerte 2177.book Seite 82 Montag, 10. Juni 2013 11:30 11 2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver meisten UNIX-Derivate), die Paged-out-Rate. Umgekehrt bedeutet das Überschreiten dieser Richtwerte nicht automatisch, dass ein Hardwareengpass vorliegt. Vielmehr sollten Sie in diesem Fall mithilfe des Workload-Monitors prüfen, ob sich die CPU-Auslastung bzw. die Paging-Rate negativ auf die Antwortzeiten auswirkt. Entsprechende Analysen finden Sie in Abschnitt 3.4.1, »Allgemeines Performanceproblem analysieren«. Hauptspeicherengpass Wenn Sie in der Voranalyse hohe Paging-Raten auf mehreren Rechnern beobachten, sollten Sie den von den SAP-Instanzen und der Datenbank allokierten Hauptspeicher berechnen (siehe die Abschnitte 2.4.3, »Anzeige des allokierten Speichers«, und 2.3.2, »Analyse der Datenbankpuffer«). Vergleichen Sie diesen mit dem physisch vorhandenen Hauptspeicher. 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 Solaris kann die Auswertung der Paging-Rate auf dem Datenbankserver zu Fehlinterpretationen führen, da dort Schreib-/Lese-Operationen (I/O) unter gewissen Umständen ebenfalls als Paging gezählt werden. Vergleichen Sie dazu die SAP-Hinweise 124199 (Solaris) und 689818 (Windows). Ursache von Hardwareengpässen Ist nach den oben genannten Kriterien ein Hardwareengpass auf einem oder mehreren Rechnern des SAP-Systems erkennbar, sind folgende Ursachen möglich: 왘 Falsche Lastverteilung Wenn Sie in einem verteilten System mit mehreren Rechnern auf mindestens einem Rechner einen Hardwareengpass feststellen, während andere Rechner über ungenutzte Ressourcen verfügen, liegt vermutlich eine falsche Lastverteilung vor. In diesem Fall sollten Sie die SAP-Workprozesse und die Benutzer neu verteilen. Überaus wichtig ist es, dass der Datenbankserver über genügend Ressourcen verfügt. Ein CPU- oder Hauptspeicherengpass auf dem Datenbankserver führt dazu, dass die benötigten Daten aus der Datenbank nicht zügig bereitgestellt werden können, was sich wiederum negativ auf die Antwortzeiten innerhalb des gesamten Systems auswirkt. 82 2177.book Seite 83 Montag, 10. Juni 2013 11:30 11 Hardwareanalyse 왘 2.2 CPU-Auslastung einzelner Programme Wä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 Ressourcenauslastung. Abbildung 2.2 zeigt eine solche Übersicht für ein System, auf dem eine ABAP-Instanz und eine DB2-Datenbank installiert sind. Folgende Prozesse können Sie identifizieren: 왘 dw_<instance>: SAP-Workprozess der SAP-ABAP-Instanz auf einem UNIX-Betriebssystem. Auf Windows-Betriebssystemen lautet die Bezeichnung disp+work. 왘 db2sysc: Datenbankprozess der DB2-Datenbank. Die Prozesse anderer Datenbanken führen in der Regel ihre Markenbezeichnung (z. B. Oracle) im Prozess- oder Benutzernamen. Abbildung 2.2 Analyse der Top-CPU-Prozesse im Betriebssystemmonitor 83 Übersicht der Betriebssystemprozesse 2177.book Seite 84 Montag, 10. Juni 2013 11:30 11 2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver Betriebssystemprozesse, die Sie anhand der folgenden Namensbestandteile erkennen können, gehören außerdem zu SAP-Instanzen: 왘 jstart ...: Serverprozess der SAP-Java-Instanz 왘 TREX ...: TREX-Prozess, der Servertyp kann dem Prozessnamen entnommen 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 CPUAuslastung 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 Prozesse der SAP-Basis oder der Datenbank, finden Sie in den im Folgenden genannten Monitoren weitere Informationen über die Tätigkeiten der Prozesse. Starten Sie den Monitor in einem zweiten Modus, identifizieren Sie anhand der Prozess-ID, die Sie auch in den entsprechenden Basismonitoren finden, den Prozess mit der hohen CPUAuslastung, und entnehmen Sie den Monitoren, welches Programm bzw. welche Tabelle, Anfrage etc. der Prozess gerade bearbeitet. 왘 SAP-Workprozesse der ABAP-Instanz Starten Sie in einem zweiten Modus die SAP-Workprozess-Übersicht (siehe Abschnitt 2.5, »Analyse der SAP-Workprozesse«). Der Workprozess-Übersicht entnehmen Sie u. a. den Namen des laufenden ABAP-Programms und des zugehörigen Benutzers. 왘 Serverprozess der Java-Instanz Starten Sie die SAP Management Console (siehe Abschnitt 10.3, »SAP Management Console«). Prozessinterna erhalten Sie durch einen Thread-Dump. 왘 TREX-Prozesse Starten Sie das TREX-Administrationswerkzeug (siehe Abschnitt 14.2, »Performanceanalyse auf dem TREX durchführen«). Im Monitor Services finden Sie Details zu den TREX-Services. 왘 ICM Starten Sie den ICM-Monitor (siehe Abschnitt 2.6, »Analyse des Internet Communication Managers (ICM)«). 왘 Datenbankprozesse Starten Sie im DBA-Cockpit den Datenbankprozessmonitor (siehe Abschnitt 2.3.3, »Identifizierung teurer SQL-Anweisungen«), um 84 2177.book Seite 85 Montag, 10. Juni 2013 11:30 11 Hardwareanalyse 2.2 die SQL-Anweisungen zu identifizieren, die aktuell von der Datenbank bearbeitet werden. Die Prozessübersicht auf Betriebssystemebene bietet Ihnen also zusammen mit den genannten Monitoren vergleichsweise bequem die Möglichkeit, Programme, Transaktionen bzw. SQL-Anweisungen oder TREX-Anfragen mit hoher CPU-Auslastung zu identifizieren. Ein CPU-Engpass kann durch externe Prozesse verursacht werden. Finden Sie in der Prozessübersicht externe Prozesse (d. h. Prozesse, die nicht direkt zum SAP-System gehören) mit einem hohen CPU-Konsum, die zu einem CPU-Engpass führen, sollten Sie prüfen, ob diese für den Betrieb Ihres Systems notwendig sind oder ob sie abgeschaltet oder auf einen anderen Rechner verlagert werden können. Beispiele für externe Prozesse sind: Verwaltungssoftware, Virenscanner, Backup, externe Systeme, Bildschirmschoner (!) etc. Externe Prozesse Identifizierung eines CPU-Engpasses Sie beobachten während Ihrer Hauptarbeitszeit einen CPU-Engpass. In der Prozessübersicht des Betriebssystemmonitors stellen Sie fest, dass ein SAPWorkprozess über Minuten hinweg eine CPU-Auslastung von 30 % zeigt. In der SAP-Workprozess-Übersicht identifizieren Sie ein lang laufendes Hintergrundprogramm. In diesem Fall sollten Sie prüfen, ob dieses Hintergrundprogramm zu Zeiten niedriger Dialoglast eingeplant werden kann. Analog dem Vorgehen bei einem CPU-Engpass können Sie sich bei einem Hauptspeicherengpass auf die Suche nach Programmen mit hohem Speicherbedarf machen. Vergleichen Sie dazu Kapitel 6, »Speicherkonfiguration«. Speicherbedarf einzelner Programme Betriebssysteme verwalten in der Regel einen eigenen File System Cache. Dieser Cache konkurriert mit dem SAP-System und der Datenbank um die Nutzung des Hauptspeichers. Ist der Cache zu groß eingestellt, kommt es zu hohen Paging-Raten, obwohl mehr physischer Hauptspeicher verfügbar ist, als durch SAP-System und Datenbank allokiert wurden. Wir empfehlen Ihnen, diesen Cache auf 7 bis 10 % des physischen Speichers zu reduzieren. File System Cache minimieren Die Betriebssystemparameter zur Einstellung des File System Caches sind z. B. dbc_max_pct bei HP-UX, ubc-maxpercent bei Digital UNIX und maxperm bei AIX. UNIX 85 2177.book Seite 86 Montag, 10. Juni 2013 11:30 11 2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver Windows Um den Microsoft Windows File Cache zu minimieren, rufen Sie die Netzwerkeinstellung (Symbol: Network) im Control Panel Ihres Windows-Betriebssystems auf. Wählen Sie die Registerkarte Services, Service Server, Schaltfläche Properties. Wählen Sie in der folgenden Maske unter Optimization die Option Maximize Throughput for Network Applications aus, und bestätigen Sie mit OK. Um den so reduzierten File Cache zu aktivieren, muss der Rechner neu gestartet werden. Ein Hauptspeicherengpass kann zu einem erhöhten CPU-Konsum aufgrund starken Pagings und damit zum CPU-Engpass führen. Die Beseitigung des Hauptspeicherengpasses kann also unter Umständen ein Verschwinden des CPU-Engpasses mit sich bringen. 2.2.2 Identifizierung von Schreib-/Lese-(I/O-)Problemen Im Betriebssystemmonitor (Transaktionscode ST06) finden Sie in der Analysesicht Snapshot 폷 Platte u. a. Informationen über die Auslastung der Festplatten und – sofern das Betriebssystem diese korrekt zur Verfügung stellt – über Warte- und Antwortzeiten der Platten. Festplattenmonitor Durch einen Doppelklick auf eine Zeile erhalten Sie für die ausgewählte Festplatte einen Überblick über die mittleren Antwortzeiten innerhalb der letzten 24 Stunden. Tabelle 2.2 listet die angezeigten Felder 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 Millisekunden) Tabelle 2.2 Felder des Festplattenmonitors 86 2177.book Seite 87 Montag, 10. Juni 2013 11:30 11 Hardwareanalyse Stellen Sie anhand dieser Monitore fest, dass einzelne Platten stark ausgelastet sind (Auslastung (%) > 50 %), liegt ein potenzieller I/OEngpass vor. Aus dem SAP-System heraus ist allerdings nur eine sehr beschränkte Aussage über I/O-Probleme möglich. Eine detaillierte Analyse kann nur mit Mitteln des Hardwarepartners durchgeführt werden. 2.2 I/O-Engpass Ein I/O-Engpass ist insbesondere dann kritisch, wenn auf dieser Festplatte der Auslagerungsspeicher des Betriebssystems liegt. Darüber hinaus ist der Betriebssystemmonitor für den Datenbankserver von besonderem Interesse. Zusammen mit dem Datenbankmonitor können mit dieser Anzeige Engpässe beim Lesen bzw. Schreiben auf die Festplatten eingegrenzt werden. Weitere Details zu diesem Problem finden Sie in Abschnitt 2.2.2, »Identifizierung von Schreib-/Lese-(I/O-) Problemen«. 2.2.3 Weitere Analysen auf Betriebssystemebene Das SAP-System protokolliert für UNIX-Betriebssysteme alle Änderungen der Betriebssystemparameter. Das Änderungsprotokoll kann über den folgenden Pfad im Betriebssystemmonitor angezeigt werden: Weitere Funktionen 폷 Parameteränderungen. Positionieren Sie den Cursor auf dem Namen eines Servers, und wählen Sie die Schaltfläche History of File. Anhand des Änderungsprotokolls lässt sich feststellen, ob Performanceprobleme eventuell erst nach Parameteränderungen aufgetreten sind und damit in Zusammenhang gebracht werden können. Parameteränderungen Mit dem Werkzeug Weitere Funktionen 폷 LAN-Überprüfung mit Ping lässt sich ein grober Netzwerktest durchführen. Sie können beliebige Datenbank-, Applikations- oder Präsentationsserver auswählen und die Netzwerkverbindung (z. B. die Antwortzeiten und Datenverluste) testen. Auch wenn der Name der Analyse fälschlicherweise LAN-Überprüfung heißt, können auch Rechner im WAN angesprochen werden. Ein Beispiel für eine Analyse mit diesem Werkzeug finden Sie in Abschnitt 8.1.2, »Performance der GUI-Kommunikation analysieren und optimieren«. Netzwerk-Check 87 2177.book Seite 88 Montag, 10. Juni 2013 11:30 11 2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver 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 ausgelagert (»gepaged«) werden 왘 einzelne Festplatten der Datenbank zu mehr als 50 % ausgelastet sind Insbesondere die Überlastung des Datenbankservers kann zu Performanceproblemen führen, die sich systemweit auswirken. Prüfen Sie mithilfe des Workload-Monitors, ob sich die hohe CPU-Auslastung bzw. die hohen Paging-Raten negativ auf die Antwortzeiten des SAPSystems bzw. der Datenbank auswirken (siehe Abschnitt 3.4, »Workload-Analyse durchführen«). Hardwareengpass analysieren Abbildung 2.3 und Abbildung 2.4 zeigen den Analysepfad bei einem Hardwareengpass: Häufig kann ein Hardwareengpass durch die Neuverteilung der Last (z. B. durch das Verlagern von Workprozessen) behoben werden. Ursachen für einen CPU-Engpass sind z. B. ineffiziente Applikationen, die im Datenbankprozessmonitor und in der Workprozess-Übersicht identifiziert werden können, oder externe, nicht zu einer SAP-Instanz bzw. der Datenbankinstanz gehörende Prozesse. Daher muss immer eine vollständige Performanceanalyse durchgeführt werden, bevor endgültig entschieden werden kann, ob die vorhandene Hardware für die gegebenen Anforderungen an das SAP-System ausreicht oder nicht. Die Flussdiagramme in Abbildung 2.3 und Abbildung 2.4 zeigen Ihnen schematisch das Vorgehen bei einem Hardwareengpass. Sie verweisen auf später in diesem Buch beschriebene Monitore und Analysen. Sie werden ähnliche Diagramme an vielen Stellen dieses Buches finden. 88 2177.book Seite 89 Montag, 10. Juni 2013 11:30 11 Datenbankanalyse 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! Abbildung 2.3 Detailanalyse eines Hardwareengpasses (CPU) 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 Abbildung 2.4 Detailanalyse eines Hardwareengpasses (Hauptspeicher) 2.3 Datenbankanalyse Der SAP NetWeaver Application Server (AS) kann zurzeit mit acht verschiedenen relationalen Datenbanksystemen sowie mit der Hauptspeicherdatenbank SAP HANA betrieben werden. Auch wenn diese Datenbanksysteme alle eine unterschiedliche Architektur besit- 89 2.3 2177.book Seite 403 Montag, 10. Juni 2013 11:30 11 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 Sperren warten müssen. Dieses Kapitel stellt detailliert die Sperrkonzepte und deren Überwachung dar. 9 Sperren In einem SAP-System können viele Benutzer gleichzeitig Inhalte von Datenbanktabellen lesen. Bei Änderungen des Datenbestands ist es jedoch notwendig, sicherzustellen, dass zu einem bestimmten Zeitpunkt 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 Datenbanksystem werden im ersten Abschnitt dieses Kapitels erklärt. Werden Sperren lange Zeit gehalten, kann es zu Wartesituationen kommen, die den Durchsatz des SAP-Systems beschränken. Mit allgemeinen Performanceaspekten von Sperren beschäftigt sich der zweite Abschnitt dieses Kapitels. Für die Verfügbarkeitsprüfung nach ATP-Logik (Available to Promise) und die Nummernvergabe für Dokumente verwendet das SAP-System spezielle Pufferungstechniken, die die Sperrzeit minimieren und den Durchsatz maximieren sollen. Diese Techniken werden im dritten 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 Datenbanksperren oder SAP-Enqueues identifiziert haben und diese detaillierter analysieren wollen 403 2177.book Seite 404 Montag, 10. Juni 2013 11:30 11 9 Sperren Dieses Kapitel ist keine Anleitung zur Entwicklung von SAP-Transaktionen. Dazu verweisen wir Sie auf ABAP-Lehrbücher oder die SAPOnlinehilfe. 9.1 Datenkonsistenz Sperrkonzepte von Datenbanksystem und SAP-System Die Konsistenz der Daten in einem Datenbank- oder SAP-System wird durch Sperren realisiert. Das SAP-System und das Datenbanksystem bieten jeweils eigene Sperrkonzepte an, die zwar beide demselben Zweck dienen (nämlich die Datenkonsistenz zu gewährleisten), aber unterschiedliche technische Realisierungen und Einsatzbereiche haben. Sperren, die vom Datenbanksystem verwaltet werden, heißen Datenbanksperren (Database Locks), die vom SAP-System verwalteten Sperren heißen SAP-Enqueues. Bestellen eines Computers Beim Konfigurieren und Bestellen eines neuen Computers muss geprüft werden, 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, kann die Verfügbarkeit des gesamten Rechners nicht bestätigt werden. Wird nun die Verfügbarkeit der unterschiedlichen Komponenten nacheinander geprüft, muss für diesen Prüfzeitraum sichergestellt werden, dass andere Benutzer nicht auf die einmal geprüften und bestätigten Komponenten zugreifen, bis die gesamte Bestellung endgültig bestätigt oder abgebrochen wurde. 9.1.1 Datenbanksperren Datenbanksperren werden vom Lock Handler der Datenbankinstanz verwaltet. Die gesperrte Einheit ist eine Zeile einer Datenbanktabelle (spezielle Ausnahmen werden am Ende von Abschnitt 9.2.1, »Datenbanksperren« erläutert). Datenbanksperren werden bei allen ändernden SQL-Anweisungen (UPDATE, INSERT, DELETE) sowie bei der Anweisung SELECT FOR UPDATE gesetzt. Sie werden so lange gehalten, bis mit der SQL-Anweisung COMMIT (Datenbank-Commit) alle Änderungen auf der Datenbank für gültig erklärt und dann die Datenbanksperren gelöst werden. Den Zeitraum zwischen zwei Datenbank- 404 2177.book Seite 405 Montag, 10. Juni 2013 11:30 11 Sperrkonzepte von Datenbanksystem und SAP-System Commits bezeichnet man als Datenbanktransaktion. Alternativ können alle ändernden SQL-Anweisungen mit der SQL-Anweisung ROLLBACK (Datenbank-Rollback) zurückgenommen werden. In diesem Fall werden die gehaltenen Datenbanksperren ebenfalls gelöst. Bestellen eines Computers (Fortsetzung) Das oben erläuterte Beispiel der Verfügbarkeitsprüfung beim Bestellen eines Computers mithilfe von Datenbanksperren realisieren Sie in der Programmierung mit der SQL-Anweisung SELECT FOR UPDATE: Mit dieser Anweisung wird gleichzeitig der Bestand einer Komponente gelesen und eine Sperre auf den entsprechenden Bestand gesetzt. Haben Sie diese Prüfung für alle Komponenten erfolgreich durchgeführt, ändern Sie anschließend den Bestand (mit einem UPDATE auf die entsprechenden Zeilen) und geben mit einem COMMIT alle Sperren frei. Während eine Sperre besteht, können andere Benutzer die Daten zwar lesen (ein einfaches SELECT ist möglich), nicht aber selbst die Zeile sperren. Es kann also weder ein UPDATE noch ein SELECT FOR UPDATE durchgeführt werden. Eine solche Sperre bezeichnet man als exklusiv. Am Ende eines Transaktionsschrittes löst der SAP-Workprozess automatisch 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) hinweg gehalten werden können. 9.1.2 SAP-Enqueues Um Sperren über mehrere Schritte einer SAP-Transaktion hinweg zu halten, verwenden Sie die SAP-eigene Enqueue-Verwaltung. Die SAPEnqueues werden vom Enqueue-Workprozess in der EnqueueTabelle verwaltet, die sich im Hauptspeicher befindet. Damit SAPEnqueues auch beim Stoppen der SAP-Instanz erhalten bleiben, werden diese zusätzlich in einer lokalen Datei auf dem Enqueue-Server gesichert. Durch einen SAP-Enqueue wird ein logisches Objekt gesperrt. So können z. B. Zeilen aus mehreren Datenbanktabellen gesperrt werden, die zusammen einen Beleg bilden. Ein SAP-Enqueue kann auch eine oder mehrere Tabellen sperren. SAP-Enqueue-Objekte werden im ABAP Dictionary (Abschnitt Sperrobjekte) angelegt und geändert. Sie hängen eng mit den Begriffen SAP-Transaktion und SAP Logical 405 SAP-EnqueueObjekte 9.1 2177.book Seite 406 Montag, 10. Juni 2013 11:30 11 9 Sperren Unit of Work (SAP LUW) zusammen. Zu beiden Begriffen finden Sie umfangreiche Dokumentationen in der ABAP-Literatur zur Dialogprogrammierung. Die Funktionsweise und Anwendung dieser Techniken innerhalb von ABAP-Programmen wird daher an dieser Stelle nicht erläutert. Es soll genügen, hier die für eine Performanceanalyse relevanten Aspekte darzustellen. Werden Performanceprobleme aufgrund eines fehlerhaften Einsatzes von SAP-Enqueues entdeckt, muss in 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 ein kundeneigenes ABAP-Programm, das sich nicht an die SAP-EnqueueKonventionen hält, kann eine Tabellenzeile in der Datenbank ändern, obwohl diese Zeile im SAP-System durch einen SAP-Enqueue gesperrt ist. SAP-Enqueues gelten also nur innerhalb des SAP-Systems. Datenbanksperren dagegen sind für alle Zugriffe wirksam. Sie sperren eine Tabellenzeile »hart« für alle Datenbankbenutzer, also auch für solche außerhalb des SAP-Systems. Funktionsbausteine Zu jedem aktivierten SAP-Enqueue-Objekt existieren zwei Funktionsbausteine: ein Enqueue-Baustein und ein Dequeue-Baustein. Ein SAPEnqueue wird innerhalb eines ABAP-Programms explizit durch den Aufruf des zugehörigen Enqueue-Bausteins gesetzt und explizit durch den entsprechenden Dequeue-Baustein freigegeben. SAP-Enqueues können damit über mehrere Transaktionsschritte gehalten werden. Alle SAP-Enqueues werden allerdings automatisch bei Beendigung einer SAP-Transaktion freigegeben. Bestellen eines Computers (Fortsetzung) Anhand unseres Beispiels der Rechnerkonfiguration und -bestellung erläutern wir die Funktionsweise der SAP-Enqueue-Verwaltung: Zum Rechner gehören z. B. Gehäuse, CPU, Hauptspeicher und Festplatte. Die einzelnen Komponenten werden auf unterschiedlichen Eingabebildschirmen, d. h. mit mehreren Transaktionsschritten, bearbeitet und zur Bearbeitung durch SAP-Enqueues gesperrt. Nachdem sichergestellt ist, dass jede Komponente einzeln reserviert werden kann, wird die Bestellung des Computers bestätigt. Damit ist der Dialogteil der Transaktion abgeschlossen. Ein Verbuchungs-Workprozess führt anschließend unter dem Schutz der SAP-Enqueues die notwendigen Änderungen der Datenbanktabellen aus. Erst nachdem der Verbuchungs-Workprozess seine Arbeit beendet hat, ist die SAP LUW abgeschlossen, und die SAP-Enqueues werden wieder freigegeben. 406 2177.book Seite 407 Montag, 10. Juni 2013 11:30 11 Überwachung von Sperren Zu einer SAP LUW gehören eventuell noch Bausteine, die in der V2Verbuchung bearbeitet werden. Dieses erfolgt ohne SAP-Enqueues. In Bausteinen, die V2-verbuchbar sind, dürfen also nur Informationen bearbeitet werden, die nicht des Schutzes durch SAP-Enqueues bedürfen (siehe auch Abschnitt 7.1.8, »Verbuchung«). Die wichtigsten Eigenschaften von Datenbanksperren und SAPEnqueues fasst Tabelle 9.1 zusammen. DB-Sperren (Locks) Gesperrtes Objekt 왘 einzelne Zeile einer Datenbanktabelle SAP-Sperren (Enqueues) 왘 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 freigegeben 왘 implizit durch SQLAnweisung COMMIT bzw. ROLLBACK 왘 grundsätzlich am Ende eines Transaktionsschrittes Maximale Haltedauer 왘 Länge eines Transaktionsschrittes Verhalten bei Sperrkonflikt Wartesituation (Exclusive Lockwait, siehe auch Abschnitt 9.2.1, »Datenbanksperren«) programmabhängig, z. B. Fehlermeldung »Material X ist gesperrt« Überwachung Transaktionscode DB01, Exclusive Lockwaits Transaktionscode SM12, Sperrverwaltung 왘 explizit durch Aufruf eines Dequeue-Bausteins 왘 grundsätzlich am Ende einer SAP-Transaktion über mehrere Transaktionsschritte hinweg Tabelle 9.1 Eigenschaften von Datenbanksperren und SAP-Enqueues 9.2 Überwachung von Sperren In diesem Abschnitt geben wir Ihnen Hinweise zur Überwachung von Datenbanksperren und SAP-Enqueues. 407 9.2 2177.book Seite 408 Montag, 10. Juni 2013 11:30 11 9 Sperren 9.2.1 Exclusive Lockwaits Datenbanksperren Was geschieht bei einem Sperrkonflikt, d. h., wenn ein Workprozess ein Objekt sperren will, das bereits gesperrt ist? Bei Datenbanksperren wartet der zweite Prozess so lange, bis der Halter der Sperre diese wieder freigegeben hat. Diese Wartesituation bezeichnet man als Exclusive Lockwait. Bei den meisten Datenbanken gibt es keine zeitliche Beschränkung für diese Sperre. Wird die Sperre durch ein fehlerhaftes Verhalten des Programms nicht wieder freigegeben, kann die Wartesituation ad infinitum bestehen. Zu einer Eskalation kann es kommen, wenn ein Programm eine für das SAP-System »lebenswichtige« Sperre (z. B. auf die Nummernkreistabelle NRIV) hält und nicht wieder freigibt. In diesem Fall besteht die Gefahr, dass ein Workprozess nach dem anderen auf diese Sperre wartet. Sind schließlich alle Workprozesse belegt, besteht schließlich aus dem SAP-Systems heraus keine Möglichkeit des Eingreifens mehr. Es bleibt als letzte Alternative nur noch, mit Mitteln des Betriebssystems den fehlerhaften Prozess abzubrechen (sofern er dann noch ermittelt werden kann). Sperrwartesituation prüfen Die aktuellen Sperrwartesituationen werden im Datenbank-Sperrmonitor (Transaktionscode DB01) angezeigt, den Sie im DBA-Cockpit (Transaktionscode DBACOCKPIT) über Performance 폷 Wartesituationen auf Sperren und Deadlocks oder in der globalen Workprozess-Übersicht (Transaktionscode SM66) über Springen 폷 DB Locks starten können. Die Beschreibung dieses Monitors und Hinweise, wie Sie bei Sperrwartesituationen vorgehen können, finden Sie in Abschnitt 2.3.5, »Weitere Analysen auf Datenbankebene«. Sperrwartesituationen tragen zur Datenbankzeit bei und führen in den Statistiken des Workload-Monitors zu einer erhöhten Datenbankzeit. Von einigen Datenbanksystemen werden Sperrwartezeiten explizit aufgezeichnet und im Datenbankmonitor angezeigt. Sperrsituation auf der Datenbank Mit dem folgenden Beispielprogramm können Sie eine Sperrsituation auf der Datenbank provozieren: REPORT zts_lock. DATA: lv_text type natxt. SELECT SINGLE FOR UPDATE text FROM T100 INTO lv_text WHERE sprsl 408 2177.book Seite 409 Montag, 10. Juni 2013 11:30 11 Ü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 Transaktionscode SE38). Nach wenigen Sekunden startet der Debugger, das Programm hält am Befehl BREAK-POINT an. Zuvor hat das Programm mit dem Befehl SELECT SINGLE FOR UPDATE eine Datenbanksperre gesetzt. Da das Programm im Debug-Modus wartet, wird diese Datenbanksperre nicht zurückgenommen. 2. Starten Sie nun in einem zweiten Modus das Programm erneut. Im zweiten Modus wird Ihnen die Sanduhr angezeigt. 3. Sie können das Programm erneut in einem dritten Modus starten, es wird Ihnen wiederum die Sanduhr angezeigt. 4. Starten Sie in einem weiteren Modus den Datenbanksperrmonitor, wie zuvor beschrieben. Die Sperrsituation wird angezeigt, und Sie können erkennen, welcher Workprozess die Sperre hält und welcher wartet. Mithilfe der Workprozess-Übersicht (Transaktionscode SM50) und des Datenbankprozessmonitors können Sie nun analysieren, was der Prozess, der die Sperre hält, tut. In unserem Beispiel finden Sie als Status in der Prozessübersicht hält und als Grund Debug. 5. Gehen Sie nun in den Debugger, und führen Sie dort die Ausführung des Programms im ersten Modus fort. Das Programm wird beendet, die Datenbanksperre wird durch ein implizites Commit oder Rollback der Datenbankschnittstelle abgeräumt, und damit kann das Programm im zweiten Modus, das bisher beim Befehl SELECT SINGLE FOR UPDATE wartete, fortfahren. Es wird also innerhalb kürzester Zeit ebenfalls den Befehl BREAK-POINT erreichen und den Debugger starten. 6. Setzen Sie auch im zweiten und, falls Sie das Programm in weiteren Modi gestartet haben, auch in diesen das Programm im Debugger fort, um die Sperren freizugeben. Grundsätzlich müssen Sie in Programmen darauf achten, dass Sperren möglichst spät angefordert werden. Es ist also besser, zunächst alle benötigten Informationen von der Datenbank zu lesen und zu bearbeiten, bevor Änderungen in der Datenbank vorgenommen und Sperren gesetzt werden. In Abbildung 9.1 ist dies schematisch dargestellt: Im oberen Teil der Abbildung werden während einer Datenbanktransaktion mehrere Änderungen auf der Datenbank vorgenommen und damit Datenbanksperren unnötig lange gehalten. Der untere Teil der Abbildung zeigt die elegantere Art der Programmierung: Während der Datenbanktransaktion werden die Änderungen in einer internen Tabelle gesammelt und erst zum Ende der Transak- 409 Typische Probleme 2177.book Seite 410 Montag, 10. Juni 2013 11:30 11 9 Sperren tion gebündelt in der Datenbank ausgeführt. Folglich verkürzt sich die Sperrzeit auf der Datenbank. A) ABAP COMMIT Einzelne Updates Datenbank Datenbanksperren B) ABAP APPEND TO <internal table> SORT <internal table> UPDATE FROM <internal table> COMMIT Datenbank Datenbanksperren DB LUW Abbildung 9.1 Sperren sollen möglichst spät gesetzt werden. Ursachen Eine Ursache von Sperrproblemen, die in SAP-Systemen immer wieder beobachtet wird, sind Kundenmodifikationen von Verbuchungsbausteinen. Die Trennung von Dialog- und Verbuchungsverarbeitung bringt den Vorteil mit sich, dass im Dialogteil einer Transaktion nur wenige Änderungen auf der Datenbank vorgenommen und damit auch nur wenige Sperren gesetzt werden. Vielmehr werden diese im Verbuchungsteil der Transaktion konzentriert. Mitunter werden Verbuchungsbausteine modifiziert, um z. B. eine kundeneigene Schnittstelle mit Daten zu versorgen. Wird diese Modifikation durchlaufen, nachdem bereits Sperren gesetzt wurden, und ist diese Modifikation inperformant, weil sie z. B. eine lang laufende SQL-Anweisung enthält, kommt es zu massiven Sperrproblemen in der Verbuchungsverarbeitung. Eine zweite Quelle von Sperrproblemen sind Hintergrundprogramme, die eine Sperre anfordern und dann mehrere Stunden arbeiten, ohne ein Datenbank-Commit auszulösen. Sollen die gesperrten Objekte ebenfalls von Dialogtransaktionen bearbeitet werden, müssen diese warten, bis das Hintergrundprogramm beendet ist oder ein Commit auslöst. Eine Lösung für dieses Problem kann es sein, das 410 2177.book Seite 411 Montag, 10. Juni 2013 11:30 11 Überwachung von Sperren 9.2 Hintergrundprogramm in regelmäßigen Abständen ein Commit auslösen zu lassen (wenn dies vom Standpunkt der Datenkonsistenz möglich ist) oder es nur zu Zeiten einzuplanen, in denen es den Dialogbetrieb nicht stört. Ähnliche Probleme treten bei der Parallelisierung von Hintergrundläufen auf, d. h., wenn dasselbe Programm mehrfach parallel gestartet wird. Diese Parallelisierung macht jedoch nur dann Sinn, wenn die Selektionsbedingungen so gewählt werden, dass sich die parallel laufenden Programme nicht gegenseitig die Daten sperren. Deadlocks Während Sie sich im ABAP Debugger befinden, wird in der Regel kein Datenbank-Commit ausgelöst, d. h., alle Datenbanksperren bleiben bestehen, bis Sie den Debugger wieder verlassen. Vermeiden Sie es daher, in einem produktiven SAP-System mit dem Debugger zu arbeiten. Im Folgenden beschreiben wir ein Beispiel für eine Situation, die man als Deadlock bezeichnet. Nehmen wir an, die Workprozesse 1 und 2 wollen jeweils eine Liste von Materialien sperren. Workprozess 1 sperrt Material A und Workprozess 2 Material B. Anschließend fordert Workprozess 1 eine Sperre auf Material B an, Workprozess 2 eine Sperre auf Material A. Beide Workprozesse können die angeforderten Sperren nicht bekommen, da diese vom jeweils anderen gehalten werden. Es entsteht also eine Situation, in der sich beide Prozesse gegenseitig blockieren. Solche Deadlocks werden von der Datenbankinstanz automatisch erkannt und aufgelöst, indem einem der beiden Workprozesse eine Fehlermeldung zurückgegeben wird. Diese führt dann zum Abbruch des ABAP-Programms und wird im SAP-Syslog protokolliert. Deadlocks können durch geschickte Programmierung leicht vermieden werden. Wird in unserem Beispiel das Programm so geändert, dass die Materialliste vor dem Sperren sortiert wird, wird immer zuerst Material A gesperrt und erst, wenn dies erfolgreich war, Material B. Damit ist ein Deadlock ausgeschlossen. Deadlock-Situationen sollten die absolute Ausnahme sein. Treten diese vermehrt auf, deutet dies auf einen Fehler im Programm oder in der Konfiguration der Datenbankinstanz hin. Von einigen Datenbanksystemen (z. B. DB2 und SAP MaxDB) werden in gewissen seltenen Fällen Einzelsatzsperren automatisch zu Tabellensperren zusammengefasst, wenn die Anzahl der gesperrten Zeilen einer Tabelle eine gewisse Quote im Verhältnis zur Gesamtzahl von Zeilen in der Tabelle (z. B. 10 %) überschreitet. In diesem Fall entscheiden diese Datenbankensysteme, dass es günstiger ist, die 411 Tabellensperren 2177.book Seite 412 Montag, 10. Juni 2013 11:30 11 9 Sperren gesamte Tabelle für einen Workprozess zu sperren, anstatt viele Sperren auf einzelne Zeilen zu verwalten. Praktische Konsequenzen hat dieses Verhalten z. B. für die Parallelisierung von Programmen, die eine gesamte Tabelle ändern sollen. Es ist nicht möglich, Hintergrundjobs so einzuplanen, dass z. B. der eine die erste Hälfte der Tabelle aktualisiert und der zweite gleichzeitig die andere Hälfte, da die Datenbank nach kurzer Zeit die Tabelle exklusiv für einen der Jobs sperren wird. Betroffen von dieser Einschränkung ist z. B. der Periodenverschieber in der Materialwirtschaft. Tabellensperren Durch Datenbankparameter können Sie beeinflussen, wann Einzelsatzsperren 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 Indexanalysen der Datenbank (z. B. VALIDATE STRUCTURE bei Oracle). Werden diese Operationen im produktiven Betrieb durchgeführt, können daraus massive Performanceprobleme resultieren. 9.2.2 SAP-Enqueues Die SAP-Enqueues werden in der Enqueue-Tabelle verwaltet, die sich im globalen Hauptspeicher des Enqueue-Servers befindet. Die Workprozesse des Enqueue-Servers greifen direkt auf die Enqueue-Tabelle zu, Workprozesse anderer Applikationsserver lassen ihre Sperroperationen vom Enqueue-Workprozess durchführen, wobei sie über den Message-Service miteinander kommunizieren (1, 2 in Abbildung 9.2). In Abbildung 9.2 werden folgende Abkürzungen verwendet: DIA: Dialog-Workprozess; ENQ: Enqueue-Workprozess; ENQ-Tab: Enqueue-Tabelle. Instanz A (Enqueue-Server) Instanz B Message-Server Dispatcher DIA DIA DIA Dispatcher ENQ DIA DIA DIA ENQ-Tab Abbildung 9.2 Kommunikation beim Setzen und Freigeben von SAP-Enqueues 412 2177.book Seite 413 Montag, 10. Juni 2013 11:30 11 Überwachung von Sperren 9.2 Das Setzen und Freigeben von Sperren dauert bei Workprozessen des Enqueue-Servers weniger als eine Millisekunde, bei Workprozessen anderer Applikationsserver weniger als 100 Millisekunden. Wird ein SAP-Enqueue angefordert, der schon von einem anderen Benutzer gehalten wird, wird der Versuch, die Sperre zu setzen, zurückgewiesen und die Kontrolle mit einer entsprechenden Fehlermeldung an das ABAP-Programm zurückgegeben. Es steht nun dem Anwendungsentwickler frei, diese Fehlermeldung im Programm zu behandeln. Bei Programmen im Dialogbetrieb wird in der Regel die entsprechende Fehlermeldung an den Benutzer weitergereicht, z. B. mit der Nachricht »Material X gesperrt durch Benutzer Y«. In Hintergrundprogrammen wird dann zu einem späteren Zeitpunkt erneut versucht, die Sperre zu setzen. Nach einer gewissen Anzahl erfolgloser Versuche wird eine entsprechende Fehlermeldung in das Protokoll des Programms geschrieben. Performanceprobleme mit SAP-Enqueues Performanceprobleme aufgrund von (zu) lang gehaltenen SAPEnqueues ergeben sich aus der Tatsache, dass der Benutzer nach einem erfolglosen Versuch seine Eingabe wiederholen wird. Nehmen wir z. B. an, dass er eine Materialliste bearbeiten und dazu 100 SAPEnqueues setzen müsse. Schlägt der Versuch beim 99. Enqueue fehl und bricht das Programm mit der Meldung »Material Nummer 99 ist gesperrt« ab, war die gesamte zuvor vom System geleistete Arbeit vergebens und muss wiederholt werden. Fehlgeschlagene Anforderungen von Enqueues führen also zu erhöhter Last auf dem System und begrenzen den Durchsatz von Transaktionen. Eine Übersicht über alle zurzeit aktiven SAP-Enqueues gibt Ihnen Transaktion 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 der SAP nach Hinweisen oder wenden sich direkt an SAP. Über die Menüoption Zusätze 폷 Statistik gelangen Sie in eine Statistik zur Aktivität des Enqueue-Services. Die ersten drei Werte zeigen die Anzahl der Enqueue-Anforderungen, die Anzahl der erfolglosen Anforderungen (erfolglos, weil der angeforderte Enqueue bereits 413 Enqueue-Statistik 2177.book Seite 414 Montag, 10. Juni 2013 11:30 11 9 Sperren anderweitig gehalten wurde) und die Anzahl der Fehler bei EnqueueAnforderungen. Dabei sollte der Anteil der erfolglosen Anforderungen nicht mehr als 1 % der gesamten Anforderungen ausmachen. Fehler sollten überhaupt nicht auftreten. 9.3 Nummernkreispufferung Bei vielen Datenstrukturen ist es erforderlich, auf die einzelnen Datenbanksätze gezielt zugreifen zu können. Dies wird mit eindeutigen Schlüsseln realisiert. Nummernkreise dienen dazu, einzelnen Datensätzen zu einem betriebswirtschaftlichen Objekt Nummern zur Vervollständigung des Schlüssels zuzuweisen. Solche Nummern sind z. B. Auftragsnummern oder Materialstammnummern. Mit der SAPNummernkreisverwaltung wird der Nummernstand überwacht, sodass bereits vergebene Nummern nicht erneut verteilt werden. 9.3.1 Grundlagen Ein betriebswirtschaftliches Objekt, für das über die Nummernkreise Teilschlüssel gebildet werden sollen, wird als Nummernkreisobjekt im SAP-System definiert. Ein Nummernkreis enthält ein Nummernkreisintervall mit definiertem Zeichenvorrat. Das Nummernkreisintervall besteht aus Zahlen oder alphanumerischen Zeichen und wird begrenzt durch die Felder Von-Nummer und Bis-Nummer. Einem Nummernkreis werden ein oder mehrere Intervalle zugeordnet. Technische Realisierung Der aktuelle Nummernkreisstand eines Nummernkreises, d. h. die Nummer, die als nächste vergeben wird, wird in der Datenbanktabelle NRIV verwaltet. Benötigt ein Programm eine Nummer (z. B. aus dem Nummernkreis MATBELEG), führt es die folgenden Schritte durch: 1. Das Programm liest den aktuellen Nummernkreisstand von der Tabelle NRIV und sperrt gleichzeitig den Nummernkreis MATBELEG. Dazu setzt es eine Datenbanksperre mit der SQL-Anweisung SELECT FOR UPDATE auf die Zeile der Tabelle NRIV, die den Nummernkreis MATBELEG verwaltet. 414 2177.book Seite 859 Montag, 10. Juni 2013 11:30 11 Index 64-Bit 283 64-Bit-Architektur 297 A ABAP 490, 492, 829 ABAP Class Builder 583 ABAP Debugger 189, 218, 235 ABAP Dictionary 109, 504, 529, 549, 581, 829 Anzeige 820 Pflege 820 Tabelle 820 ABAP Editor 311, 539, 820 ABAP Objects 583 ABAP Shared Objects 307 ABAP Webservices 394 ABAP Workbench 225, 409, 541, 820 ABAP-Applikationsinstanz 76, 277 ABAP-Instanz 363 ABAP-Klassenbibliothek 820 ABAP-Laufzeitanalyse 208, 211, 235, 521 ABAP-Laufzeitanalyse, Web-DynproAnwendungen 210, 397 ABAP-Laufzeitfehler 821 ABAP-Programm 521, 527 Laufzeitanalyse 194 Qualitätsanalyse 225 ABAP-Programmabbruch 306 ABAP-Server 151, 159 ABAP-Trace 66, 189, 208 Einzeltransaktionsanalyse 217 Summary 216 Varianten 213 ABAP-Webservice 394 ACID-Prinzipien 829 Activation Queue 758 Active Data 758 Active Session History 101 Adaptive Computing Controller 270 Address Space 282 Administrationswerkzeug, Datenbank 543 Adressraum 829 Agent 178, 787, 789 Agent Private Memory 787 Aggregat 491, 637, 644, 688, 695, 718 anlegen 640 Funktion 522 Indizierung 645 komprimieren 646 Pflege 645 Vorschlag 642 Aggregierung 213 Ähnlichkeitsmaß 656 Aktionsprofil 180 Aktivität 씮 Durchsatz ALE 829 ALE-Administration 819 Alert 138 Alert, automatischer 144 Alert-Monitor 829 Alert-Server 658, 663, 675 Allocation Analysis 448 Allocation Trace 482 Allokationsrate 454 ALV Control 368 American National Standards Institute 829 Analyse linguistische 656, 700 logische 62 technische 62 Analysemethode 137 analytische Anwendung 594 Änderung, logische 169 Änderungs- und Transportsystem 560 Änderungsauftrag 560 Änderungslauf 647, 693 Anfrage, analytische 709 Anmeldegruppe 277, 324, 348 Anmeldegruppe, Pflege 821 Anmeldegruppen-Monitor 319 ANSI 829 Antwortzeit 55, 149, 161, 190, 322, 769 Antwortzeit, mittlere 175 Antwortzeitverteilung 181 859 2177.book Seite 860 Montag, 10. Juni 2013 11:30 11 Index Anwendungsanalyse 149, 821 Anwendungsmonitor 821 Anwendungspuffer objektorientierte 292, 549, 580, 589 Anwendungsserver 씮 Applikationsserver Anzeigeattribut 602 APO-Server 272 Appliance 700 Application Link Enabling 829 Application Service Providing (ASP) 25 Application Support Layer 787 Applikationsanalyse 149, 821 Applikationsebene 38 Applikationsfehler 308 Applikationsoptimierung 20 Applikationsserver 41, 76, 159, 201, 829 Applikationstuning 31, 63 Archiver Stuck 110, 169 Array Fetch 199 ATP-Logik 403, 421 ATP-Server 320, 421, 422, 424 ATP-Service 274 Attribut 595, 608 Anzeigeattribut 602 Navigationsattribut 602 Attributindex 44 Attributvektor 705, 714 Ausführungsplan 496, 741, 769, 829 DB2 für IBM i 800 IBM DB2 für z/OS 805 Microsoft SQL Server 816 Oracle 809 Auslagerungsspeicher 81, 118, 282, 295, 297, 299, 313, 829 Automatic Workload Repository 101 Autoreaktionsmethode 144 Auxiliary Storage Pool 295 B B*-Baum 624 Backup 49, 54 Backup-Index-Server 679 Bandbreite 711 BAPI 829 Batch-Input 240, 829 860 Benchmark 253, 256, 839 Benutzer aktiver 164 gelegentlicher 164 Power-Benutzer 165 Sachbearbeiter 165 Benutzeranbindung 37 Benutzerkontext 158, 284, 358, 829 Benutzerliste 820 Benutzermodus Experte 153 Service Engineer 154 Benutzeroberfläche, grafische 832 Benutzerprofil 165, 180 Benutzerübersicht 342 Beschränkungen des Betriebssystems 297 Bestand 595 Betriebsart 329, 820, 830 Betriebssystem 313 Auslagerungsspeicher 305 Grenze 309 Kommando 820 Konfigurationsparameter 306 Paging 284 Parameter 87 Betriebssystem (Operating System) 281, 835 Betriebssystemdatei 819 Betriebssystemmonitor 66, 77, 86, 196, 260, 374, 795, 821 Betriebssystemmonitor, Prozessübersicht 126 Betriebssystemprozess 83 Betriebszeit 53 Bewegungsdaten 562 BEx Analyzer 380, 598 BEx Web Analyzer 598 bgRFC-Monitor 357 Big Data 24, 699 binäre Suche 714, 770 Blade-Server 700 Blatt 624 Block 92 Browser 830 Bruttozeitoptimierung 218 BSP-Anwendungen, Laufzeitanalyse 210, 397 BSP-Entwicklung 391 2177.book Seite 861 Montag, 10. Juni 2013 11:30 11 Index Buffer Get 489 Buffer Pool 787 Buffer Trace 194 Business Application Programming Interface 씮 BAPI Business Connector 830 Business Objects 830 Business Process 47 Business Server Page (BSP) 39, 367, 377, 388 BW Administrator Workbench 612, 625, 628, 643, 689, 819 BW Query Monitor 819 BW Query 씮 BW-Anfrage BWA 씮 SAP NetWeaver BW Accelerator BW-Aggregatpflege 819 BWA-Index 689 pflegen 691 prüfen und abschalten 690 BW-Anfrage 594, 597 Analyse 613 Hintergrunddruck 635 BW-Prüfreport 819 BW-Statistik 615, 691 BW-Workload-Statistik 613 C CA Wily Introscope 66, 478, 483, 847 Enterprise Manager 479 WebView 479 Workstation 479 Cache 씮 Puffer Calc Engine 721 CALL-Befehl 284 Catalog Cache 772, 787 CBO 500 CCMS 30, 35, 65, 135, 508, 830 Alert 139 Monitoring 135 Monitoring-Baum 141 System Component Repository (SCR) 179 Überwachungsmonitor 137, 348 Change 566, 575 Change and Transport Organizing 830 Change Log 758 Change Run 647, 693 charakterisierender Parameter 151 Checkpoint 93 Check-Set 664 Class Statistic 482 Classloader 434 CLEAR-Anweisung 222 Client-Destination-Statistiksatz 352 Client-Server-Architektur 38 Client-Server-Architektur, Skalierbarkeit 46 Client-Statistiksatz 351 Cloud-Anwendung 698 Cluster-Coding 707 Clustered Index 816 CO 830 Code Cache 440 Code Completion 741 Code Inspector 189, 225, 235, 556, 740 Code Push-down 695, 718 Column Store 씮 spaltenorientierte Datenspeicherung Common Programming Interface Communication 830 Computer Center Management System 씮 CCMS COM-Routine 씮 Database Procedure Concurrent-Mark-Sweep-Kollektor 437 Connection View 446 Container 90 Control 367 CO-PA Accelerator 698 Core 80, 783 Cost-Based Optimizer (CBO) 500 CPI-C 830 CPU 46, 80, 830 Auslastung 79, 83, 108, 261 Bedarf 256, 363 Belastung 170 Engpass 81, 85, 108, 169 Ressourcen 321 Sizing 724 Trace 208 Wartezeit 323 Zeit 161, 163, 166, 172, 193, 322 CTO 830 Cursor 200 861 2177.book Seite 862 Montag, 10. Juni 2013 11:30 11 Index Cursor Cache 282 Cursor-ID 200 Customer Interaction Center 221 Customizing 830 Customizing Organizer 830 Customizing-Daten 562 D Data Buffer 92 Data Cache 92, 772, 814 Data Control Language (Datenkontrollsprache) 831 Data Definition Language (Datendefinitionssprache) 831 Data Manipulation Language (Datenmanipulationssprache) 831 Data Mining 594, 700 Data Warehouse 595 Database Analyzer 778 Database Global Memory 787 Database Heap 787 Database Lock 씮 Datenbanksperre Database Procedure 160 Database Procedure Calls 160 Database Procedure Subrecord 160 Database-Procedure-Zeit 160 DataStore-Objekt 595, 608 HANA-optimiertes 756, 758 indizieren 627 Dateioperation 464 Datenarchivierung 830 Datenbank 76, 830 Administration 111 Analyse 75, 89, 768 Fehlerprotokolldatei 107, 792 Last 525 Puffer 769 Stillstand 109 Tasks 773 Datenbankadministrator-Cockpit 씮 DBA-Cockpit Datenbankanfrage, Parallelisierung 702 Datenbankebene 40 Datenbankindex, fehlender 109 Datenbankinstanz 76, 303, 830 Datenbankkonsolidierung 267, 271 Datenbanklast 761 862 Datenbankmonitor 66, 90, 120, 408, 767 Datenbankobjekt, fehlendes 819 Datenbankoperation 199 Datenbankoptimierer 108, 496, 499, 517, 741, 829, 831 Datenbankoptimierer, kostenbasierter (CBO) 108 Datenbankperformance, Problem 171 Datenbankperformancemonitor 91, 821 Datenbankprozess 83, 736 Datenbankprozessmonitor 97, 126, 196, 475, 483, 773, 783, 797, 804, 815 Datenbankprozessor 107 Datenbankpuffer 92, 702 Datenbankserver 40, 76, 831 Datenbankservice 363 Datenbanksperre 105, 404, 406, 408, 475, 791, 831 exklusive 106 IBM DB2 für z/OS 805 SAP MaxDB 777 SQL Server 815 Datenbanksperrmonitor 126, 408 Datenbanksystem 76, 404, 830 Datenbanksystem, paralleles 77 Datenbanktabelle 593 Datenbanktuning 30 Datenbank-View 535, 696, 771, 780, 786, 794, 801, 807, 811, 817 Datenbankzeit 159, 166, 171, 172 Datenbankzeit, lange 127 Datenbankzugriff 190 Datenbankzugriff, voll qualifizierter 199 Datenfile 90 Datenhaltung dezentrale 679 zentrale 679 Datenlokalität 712 Datenmenge, übertragene 370 Datenmodellierung, SAP HANA 716, 721 Datenpaket 646 Datenpuffer 94, 772, 787, 803, 814 Daten-Volume 777 DB2 씮 IBM DB2 2177.book Seite 863 Montag, 10. Juni 2013 11:30 11 Index DBA 831 DBA-Cockpit 91, 126, 408, 505, 507, 725, 767, 772, 796 DBA-Planungskalender 507 DBA-Protokoll 819 DCL 831 DDL 831 Deadlock 411, 831 Debuggen 219 Debugger 441 Default Data Cache 781 Dekomposition 662 Dekomposition, vertikale 662 DELETE-Anweisung 222 Deltaindex 673, 676, 692, 708, 746, 749 aktivieren 677 integrieren 678 demilitarisierte Zone (DMZ) 41, 276 Denkzeit 322 Deoptimierung 441 Dequeue-Baustein 406 Destination 340, 344 Development Workbench 35 DIAG-Protokoll 831 Dialog Step 씮 Transaktionsschritt Dialogantwortzeit 336 Dialogbenutzer 240, 329 Dialoglast 168 Dialogservice 274, 319, 320 Dialog-Workprozess 158, 331, 358, 831 Dictionary 714 Dictionary-Coding 705 Differenz-Coding 708 Dimensions-ID (DIMID) 599 Dimensionstabelle 599 Dimensionstabelle, Index 625 Direct Read 199, 770, 779, 785, 800, 806 direktes Lesen 씮 Direct Read Disk Read 489 disp+work 274 Dispatcher 319, 831 Dispatcher-Prozess 273 Dispatcher-Queue 132, 157 Dispatcher-Wartezeit 157, 166, 172, 323 Dispatching 274 Distributed Statistic Record 씮 Statistiksatz, verteilter Distributed Statistics Records (DSR) 177 DML 831 Dokumentation 63 Dominator Tree 472 Drill-down 596 DSWP 232 Dual-Stack-Installation 272 Dump 305 Durchsatz 163, 174, 403 dynamische Benutzerverteilung 277, 324 Dynamischer Statement Cache 803 Dynpro 831 E E2E-Trace 씮 End-to-End-Trace EarlyWatch Alert 씮 SAP EarlyWatch Alert Easy Web Transaction 392, 832 eCATT 831 Eclipse 831 Eden 433, 436 EDI 831 EDM DSC Cache 804 EDM-Pool 804 E-Faktentabelle 630 Einführungsleitfaden 632 Einheitendimension 605 Einkernprozessor 80 Einzelsatz, statistischer 150, 189, 234 Einzelsatzpuffer 549, 551 Einzelsatzstatistik 66, 189, 343, 362, 371, 397, 613, 821 Einzelsatzstatistik, zentrale 179, 226 Einzeltransaktionsanalyse 215 Electronic Data Interchange 831 Embedded Search 654 End User Experience Monitoring 55, 387 End-to-End-Diagnostik 70 End-to-End-Laufzeitanalyse 229, 232, 235 SAP-GUI-Transaktion 231 End-to-End-Trace 214, 381, 476 End-to-End-Workload-Analyse 183 863 2177.book Seite 864 Montag, 10. Juni 2013 11:30 11 Index Engpassanalyse 149, 323 Enqueue 404, 831 Enqueue-Baustein 406 Enqueue-Operation 194 Enqueue-Server 318 Enqueue-Service 274, 318, 320 Enqueue-Tabelle 412 Enqueue-Trace 194, 207 Enterprise File Search (EFS) 654 Enterprise JavaBeans 40 Entität 832 Entwicklerprotokoll 310 Entwickler-Trace 821 Ereignisdaten 700 erweiterter Speicherbereich (EM) 308 Eskalationsverfahren 57 ETL-Prozess 599 Event 389 EWT 832 Exclusive Lockwait 105, 113, 133, 147, 408, 427, 805, 815 Execution Plan 씮 Ausführungsplan Executive Information System (EIS) 593 Expertenmonitor 65 Export-Import-Puffer 423, 550, 581 Export-Import-SHM-Puffer 307, 550, 581 Extended Global (EG) Memory 291 Extended Memory 309, 832 Extensible Markup Language 841 Extrahieren 599 F Failover Recovery 270 Failover-Lösung 320 Faktentabelle 599, 646 Index 625 komprimieren 629, 692 SAP HANA 756 FDDI 832 FE Net Time 370 Fehlerbehebung 56 Fehlercode DBIF_RSQL_NO_MEMORY 312 EXPORT_NO_SHARED_MEMORY 307 864 Fehlercode (Forts.) EXSORT_NOT_ENOUGH_MEMORY 312 PXA_NO_SHARED_MEMORY 306 SET_PARAMETER_MEMORY_OVERFLOW 307 STORAGE_PARAMETERS_WRONG_ SET 306, 309, 312 SYSTEM_NO_MORE_PAGING 293 SYSTEM_NO_ROLL 307 TSV_TNEW_PAGE_ALLOC_FAILED 306 TSV_TNEW_PG_CREATE_FAILED 293 Festplatte 711 Festplatte, Zugriff 777, 816 Fetch-Operation 199, 531, 566 F-Faktentabelle 630 Fiber Distributed Data Interchange 832 File System Cache 85 File- und Network-I/O-Analysis 464 Files-Statistik 464 Firewall 832 Flow 595 Fluss 595 FOR ALL ENTRIES 531, 534 Fragmentierung 576, 585 FREE-Anweisung 222 Frontend, Trace 229 Frontend-Zeit 370 Full Table Scan 497, 503, 512, 623, 770 Function Builder 335 funktionaler Trace 씮 Einzelsatzstatistik, zentrale Funktionsbaustein 334 G Ganzzahlidentifikator 705 Garbage Collection (GC) 433, 482, 832, 838, 853 Compacting 435 GC Analysis 466, 482 JVM 433 Kollektor 436 Mark and Copy 436 Mark and Sweep 435 2177.book Seite 865 Montag, 10. Juni 2013 11:30 11 Index Garbage Collection (GC) (Forts.) partielle 434 Protokoll 439 vollständige 435 Gateway-Monitor 342 Gateway-Service 274 Generation 433 Generierungszeit 159 Geschäftsprozess 47 Global Cache Hit Ratio 804 Globally Unique Identifier (GUID) 832 GoingLive Check 씮 SAP GoingLive Check GoingLive Functional Upgrade Service 265 GUI 832 GUI Control 368 GUID 832 GUI-Kommunikation 371 GUI-Zeit 160, 193, 369, 373 H HANA 씮 SAP HANA Hardware 46 Analyse 75, 77, 79 Engpass 82, 169 Kapazität 170 Konsolidierung 267, 269 Landschaft 319 Sizing 239, 241, 425 Tuning 30 Hardwarepartner 241, 245 Harmonisierung 268 Hash-Tabelle 223 Hauptspeicher 46, 281, 695, 702, 711, 745 Auslastung 81 Bedarf 260, 301 Engpass 81, 82, 85, 169 Profil 173 Pufferung 415 Sizing 723 Hauptspeicher, virtueller 313 Hauptspeicherbedarf 190 Hauptspeicherkonfigurationsmonitor 260 Heap 284 Heap Dump 472 Heap Dump Analysis 482 Heap Memory 832 Hierarchie 605, 608 High Availability 319, 320 High Water Mark 117 Hint 517 Hintergrundjob, Scheduling-Monitor 819 Hintergrundlast 168 Hintergrundprogramm 240, 410 Hintergrundservice 274, 320 Hintergrundverarbeitung 820, 832 Hitratio 93 Hochverfügbarkeit 319, 832 Hochverfügbarkeitscluster 270 Hotspot 103, 455, 713, 816 Hotspot Java Virtual Machine 436 HPROF-Datei 472 HTML 833 HTML Business Template 393 HTTP 833 HTTP-Aufruf 397 HTTP-Trace 206, 234, 380 HybridProvider 596 Hypertext Markup Language 833 Hypertext Transfer Protocol 833 I I/O-Engpass 87, 104, 201 I/O-Operation 482 IAC 833 IBM DB2 788 für IBM i 795 für Linus, UNIX und Windows 788 für Linux, UNIX und Windows 787 für z/OS 803 IBM i 295, 796 ICM-Monitor 66, 135, 381, 394 IDES 833 IDoc 833 IMG 833 Implementation Guide 833 Index 638, 695, 718, 745 administrieren 504 anlegen 504 B*-Baum-Index 627 B*-Index 714 865 2177.book Seite 866 Montag, 10. Juni 2013 11:30 11 Index Index (Forts.) Bitmap-Index 624, 627 BWA-Index 689 effizienter 199 fehlender 109 Fragmentierung 509 Hauptspeicher 653 invertierter 713, 714 konkatenierter 713, 716, 745 logischer 660, 674 physischer 660, 674 Primärindex 109 Qualität 510 reorganisieren 509 teilen 674 TREX-Index 653 verwalten 504 Index Range Scan 498, 503 Index Scan 623 Index Unique Scan 497 Indexaktualisierung 682 Index-Server 658, 678, 720 Indizierung 621, 682 InfoCube 595, 599, 608, 639 HANA-Migration 819 HANA-optimierter 756 indizieren im BWA 687 Optimierung 620 Tabellen 606 transaktionaler 624 Übersicht 819 InfoObject 595 InfoProvider 595, 608, 631 InfoSet 596 In-Memory-Anwendung 698 In-Memory-Computing 653, 695, 702 In-Memory-Datenbank 711 Insert-Only-Ansatz 718 Installation verteilte 319 zentrale 319 Instanz 씮 SAP-Instanz Integer ID 705 Integrität 49 Inter Process Communication 834 Interaktionsmodell 368 Internal Document 833 International Demo- and Education System 833 866 Internet Application Component 833 Internet Communication Framework (ICF) 389, 392 Internet Communication Manager (ICM) 134, 274, 378, 380, 388, 389, 657 Internet Communication Manager, Monitor 820 Internet der Dinge 699 Internet Pricing and Configuration (IPC) 273, 283, 360, 834 Internet Transaction Server (ITS) 273, 283, 326, 377, 392, 834 externer 393 integrierter 292, 392, 820 Performanceanalyse 206, 394 Internetanbindung 367 Interpreter 440 Intranet 834 Introscope 씮 CA Wily Introscope Introscope Trace 481 Introscope-Statistik 178 Invalidierung 116, 559 IPC 834 iSeries 295 ITS 씮 Internet Transaction Server (ITS) ITS-Monitor 66 ITS-Status-Monitor 393 iView 38 J J2EE Engine 씮 SAP NetWeaver Application Server Java Java 834 Java Development Kit (JDK) 432 Java Dictionary 549, 586 Java Heap 433, 439, 472, 483 Java Runtime 445 Java Server Page 40, 367, 378 Java Servlet 40, 367 Java Virtual Machine (JVM) 361, 432, 482, 834, 840 Speicherbereiche 433 Workprozesse 442 Java-Applikationsinstanz 76, 277 Java-Bytecode 440 JavaScript 720 Java-Statistik 177 2177.book Seite 867 Montag, 10. Juni 2013 11:30 11 Index Java-Trace 66 Java-Workload-Monitor 183 JIT-Compiler 432, 440, 456 Jobanalyse 820 Jobübersicht 646 Join 608, 623 Join Engine 721 K Karenz 558, 567 Katalogpuffer 586 Kennzahl 150, 595 Key Performance Indicator (KPI) 137 Knowledge Management (KM) 653 Kommandomonitor 775 Kompilat 440 Komprimierbarkeit 717 Komprimierung 652, 662, 702, 705 Cluster-Coding 707 Präfix-Coding 707 Run-length-Coding 708 Sparse-Coding 707 Konditionstabelle 563, 580 Konsolidierungsstrategie 273 Kontextwechsel 80, 284, 834 Kopplung Application Link Enabling (ALE) 339 harte 339 weiche 339 L Laden 599 Ladezeit 159 LAN 835 LAN-Check 87 Landschaftsreorganisation 673, 675 Landschaftsreplikation 722 Large IO Pool 782 Last 163, 174 ausgehende 348 eingehende 348 externe Systeme 180 Lastprofil 151, 479 Lastverteilung 151, 170, 317 ABAP 318 falsche 82, 129, 171 Lastverteilungskonzept, neues 358 Latenzzeit 380, 465, 711 Laufzeit 455 Analyse 150, 194, 208, 478 konstante 224 logarithmisch ansteigende 224 Leaf 624 Lesen satzweises 503 sequenzielles 503, 770, 779, 785, 792, 793, 800, 801, 805, 806, 810, 816, 817 Lesezugriff 422 logischer 93 physischer 93 Linearität 248 Line-Item-Dimension 609, 757 Linux 295 liveCache 씮 SAP liveCache Local Area Network (LAN) 45, 835 Local Memory 282 Lock Handler 404 Lock List 787 Lock-Eskalation 777 Log-Bereich 109, 778 Logical Unit of Work (LUW) 355, 835 Logistic Information System (LIS) 335, 593 Logon-Gruppe 씮 Anmeldegruppe Loop, geschachtelter 223 Low Speed Connection 376 LRU 835 M Mandant 835 Mark-and-Copy-Kollektor 436 Maschinen-Code 440 Master-Index-Server 673, 678 Master-Service 754 Mehrkernprozessor 80 Mehrsprachigkeit 608 Memory Analyzer 471, 483 Memory Inspector 218, 220 Memory Leak 471, 474, 482, 483 Memory Management 835 IBM i 295 Linux 295 Memory Pipe 135, 392 Mengengerüst 244 867 2177.book Seite 868 Montag, 10. Juni 2013 11:30 11 Index Merge 676, 709, 749 Auto-Merge 750 Critical-Merge 750 Hard-Merge 750 Smart-Merge 750 Merkmal 595, 602, 608 Message-Server 239, 274, 275, 363 Metadaten 92 Method Parameter Trace 482 Methode 440, 482 Methode, Speicherbedarf 451 Microsoft SQL Server 494 Microsoft Windows 86, 293, 324 Migration 267 Missing Index 505 Mobile Client 38 Model View Controller (MVC) 388 Modularisierungseinheit 208, 218 Modus 284, 835 externer 284 interner 285 PRIV-Modus 288, 305 Modusliste (Mode List) 304 Monitoring 47, 56 Monitoring, zentrales 51 Monitoring-Agent 143, 227 Monitoring-Baum 141 Monitoring-System, zentrales 179 Mooresches Gesetz 835 MultiProvider 596, 597, 608 Multi-Threaded-CPU 80 MVC 388 N Name-Server 658, 720 Nametab-Puffer 550 Navigationsattribut 602, 608 Nested Loop Join 536, 623, 786 Net Time 370 Network Alert Monitor 821 Network Monitor 821 Network-I/O- und File-I/O-Trace 482 Netzplangrafik 819 Netzwerk 87, 201, 322 Operation 464 Problem 201 Tuning 30 Übertragungszeit 386 868 Netzwerk (Forts.) Verbindung 464 Nummernkreis 414 Intervall 414 Nummernkreisstand 419 Objekt 414 Puffer 422 Pufferung 414, 415, 419, 820 Pufferungsmodus 421 O Object Linking and Embedding (OLE) 835 OLAP 257, 272, 594, 835 OLAP Engine 721 OLAP-Cache 583, 609 Konfiguration 632, 819 Monitor 819 überwachen 630 OLAP-Cache-Monitor 633, 635 OLAP-Prozessor 609 Old Generation 434, 436, 438 OLE 835 OLTP 257, 272, 594, 835 Online Analytical Processing 씮 OLAP Online Transaction Processing 씮 OLTP Open Object 814 OPEN-Operation 199 Open-SQL-Monitor 476 Optimierer 씮 Datenbankoptimierer Optimierung, technische 20 Optimierungskonzept 47, 51 Optimizer 씮 Datenbankoptimierer Oracle 94, 809 Oracle Wait Event 99 Outsourcing 25 P Package Cache 787 Page-in 829 Page-out 829 Pages 92 Paging 835 Paging-Datei 297, 313 Paging-Datei 씮 Auslagerungsspeicher Paging-Rate 81, 85, 795 2177.book Seite 869 Montag, 10. Juni 2013 11:30 11 Index PAI 835 Paketdimension 605 Parallelisierung 702, 712, 753 Parameter, charakterisierender 151 Parameteränderung 87 Parameterpflege 381 Parsen 497 Partitionierung 332, 662, 712, 754 bereichsweise 713 horizontale 712 umlaufende 713 vertikale 712 PASE-Laufzeitumgebung 295 PBO 836 Performance 48, 836 Forum 74 Management 33 Messung 368 Performance Hotspot Analysis 455 Performance Hotspot Trace 482 Performanceindikator 136 Performancemanagement, proaktives 21 Performancemenü 821 Performanceoptimierung, kontinuierliche 58 Performanceproblem allgemeines 165 dauerhaftes 167 spezielles 165, 173 temporäres 167 Performance-Trace 194, 195, 372, 618 Permanent Generation 434, 439 Pflege-View DBDIFFVIEW 506 Pflichteingabefeld 538 physischer Hauptspeicher (RAM) 281, 297, 313 Pivotieren 596 Planungsanwendung 594 Plug-in 37 Pool-Größe 686 Pop-up 836 Präfix-Coding 707 Präprozessor 659, 673, 720 Kapazität 686 konfigurieren 683 Modi 685 Präsentationsebene 38 Präsentationsserver 41 Analyse 381 Trace 383 PREPARE 200 Prepared Statement 804 Pre-parsed Template 393 Primärindex 495, 505, 770 Prioritätsklasse 358 Private Mode 288 PRIV-Modus 128, 289 Procedure Cache 814 Process After Input 835 Process Before Output 836 Processing-Zeit 161, 163, 166 Profil bearbeiten 819 Profilparameter 305 abap/atrapath 211 abap/atrasizequota 211 abap/heap_area_dia 287, 291, 309, 311 abap/heap_area_nondia 287, 291, 309, 311 abap/heap_area_total 287, 301, 309 abap/heaplimit 173, 287 dbs/io_buf_size 200 Einstellung 310 em/address_space_MB 294 em/blocksize_KB 286 em/initial_size_MB 118, 128, 286, 303, 309 em/max_size_MB 294 Pflege 820 PHYS_MEMSIZE 118, 294, 303 rdisp/atp_server 320, 424 rdisp/bufrefmode 558 rdisp/bufreftime 558 rdisp/enqname 320 rdisp/max_wprun_time 326 rdisp/mshost 320 rdisp/PG_MAXFS 293 rdisp/PG_SHM 293 rdisp/ROLL_MAXFS 286, 309 rdisp/ROLL_SHM 118, 286 rdisp/vb_dispatching 333 rdisp/vbstart 331 rsdb/max_blocking_faktor 533 rsdb/obj/buffersize 425 rsdb/obj/max_objects 425 rstr/file 196 869 2177.book Seite 870 Montag, 10. Juni 2013 11:30 11 Index Profilparameter (Forts.) rstr/max_diskspace 196 stat/dbprocrec 160 ztta/roll_area 286, 291 ztta/roll_extension 287, 291, 305, 309 ztta/roll_first 287, 289, 291 Program Counter 80 Program Global Area (PGA) 94 Programm Abbruch 306 Fehler 305 HTTPWatch 385 PERFMON 386 RSCOLL00 156 SAP_COLLECTOR_FOR_PERFORMANCE 156 Saposcol 79 saposcol 79 Programmpuffer 306, 550 Promotion 434 Prozess beendeter 128 externer 85 haltender 128 Prozess-ID 126 Prozesskette 599 Prozessor 80, 266, 834 Prozessor-Thread 364 Prüfgruppe 425 PTF-Paket 799 Puffer 44, 92, 549 Arten 549 Attributindex 44 Betriebssystempuffer 44 Datenbankpuffer 44 datenmodellorientierter 44 Datenpuffer 92 Einstellung 116, 542 Einzelsatzpuffer 554 Katalogpuffer 787 Kommunikationspuffer 787 Management 554 Metadatenpuffer 782 objektorientierter Anwendungspuffer 44 Package-Puffer 787 Prozesspuffer 782 Pufferhierarchie 44 870 Puffer (Forts.) Qualität 93, 112 Speicher-Subsystem 44 Status 567 Synchronisation 556, 588, 819 Synchronisationsmonitor 579 Tabellenpuffer 44, 554, 587 TABL 554 TABLP 554 Typen 44 Zugriff 554 Puffer-Trace 194, 204 Pufferung 씮 SAP-Pufferung Python-Trace 671 Q quadratische Abhängigkeit 224 Qualitätsanalyse 225 Query, Parallelisierung 662 Queue-Server 658 Queue-Server konfigurieren 673, 682 Quick Sizer 242, 313 Quick-Sizer-Projekt 250 R R/3 836 Radio-Frequency Identification (RFID) 700 RAID 836 RAM 씮 Hauptspeicher Rangliste 656 RBO 499 RBO 씮 Rule-Based Optimizer (RBO) RDBMS 836 Read Random Hit Ratio 803 READ TABLE 223 READ TABLE ... WITH KEY ... 222 Reaktionszeit 56 Rechner 76, 126 Rechnerprofil 171 Recoverability 49 Recovery 54, 270 Recursive Call 96 Redo-Log-Datei 169 REFRESH-Anweisung 222 Region, generische 553 Reisepass 177, 227, 839 2177.book Seite 871 Montag, 10. Juni 2013 11:30 11 Index Relational Database Management System 836 relationale Datenbank 40 Remote Function Call (RFC) 37, 241, 358, 836 ABAP-Coding 340 Ablauf 341 asynchroner (aRFC) 327, 340, 354, 820 Grundlagen 338 Hintergrund-RFC (bgRFC) 340, 357 queued (qRFC) 340 RFC-Zeit 344 Statistiken 351 synchroner 340 transaktionaler (tRFC) 340, 355, 840 RemoteCube 631 Rendering-Zeit 386 REOPEN-Operation 199 Reorganisation 755 Replikation 679, 680, 722 Reporting 593 Reporting, Vorberechnung 635 Repository Browser 820 Repository-Infosystem 820 Request 566, 575 Ressourcenbedarf 241, 248, 847 Ressourcenmanagement 271 Ressourcenmonitor 776 RFC 씮 Remote Function Call (RFC) RFC-Aufruf 194 RFC-Client-Profil 351 RFC-Trace 193, 194 RFC-Verbindung 344, 820 RFC-Verbindungen, überwachen 348 RFID 836 Roll Memory 씮 SAP Roll Memory Roll-in 158, 286, 834 Roll-out 158, 286, 834 Roll-Puffer 303 Roll-up 596 Roll-Wartezeit 160, 193, 343, 370 Roundtrip 369, 465 Row Cache 95 Row Store 721, 735 Row-ID 495 Rule-Based Optimizer (RBO) 501 Run-length-Coding 708 S SAP Advanced Planning and Optimization (SAP APO) 35 SAP Application Performance Standard 254 SAP Business ByDesign 699 SAP Business Suite 34 Architektur 34 Einführung 267 SAP Business Suite, SAP HANA 698 SAP BusinessObjects 598 SAP BusinessObjects Analysis 598 SAP BusinessObjects Business Intelligence-Plattform 598 SAP BusinessObjects Dashboards 598 SAP BusinessObjects Explorer 599, 690 SAP BusinessObjects Web Intelligence 598 SAP Client Plug-in 230, 235, 383, 385 SAP Crystal Reports 598 SAP Cursor Cache 200 SAP Customer Relationship Management (SAP CRM) 35, 834 SAP EarlyWatch Alert 25, 58, 69, 72, 258, 310 SAP Easy Access-Menü 376 SAP Enterprise Resource Planning (ERP) 35 SAP Extended Global (EG) Memory 292, 393 SAP Extended Memory 117, 284, 286, 289, 292, 303, 313 SAP GoingLive Check 25, 242, 245, 258, 310 SAP GoingLive Functional Upgrade Check 259 SAP GoingLive Migration Check 259 SAP GUI 367, 378, 836 Controls 367, 368 for HTML 37, 378 for Java Environment 37, 38, 378 for Windows 37, 38, 378 SAP HANA 526, 695, 836 Administration 758 Cloud-Anwendung 698 Datenbankplattform 697 Hauptspeicherbereich 728 871 2177.book Seite 872 Montag, 10. Juni 2013 11:30 11 Index SAP HANA (Forts.) Indizierung 713 Komprimierung 705 Sizing 722 Skalierbarkeit 526 Skalierung 47 SAP HANA Studio 725 SAP Heap Memory 117, 284, 287, 309, 313, 361 SAP Host Agent 797 SAP Internet Transaction Server (SAP ITS) 39, 834 SAP Java Virtual Machine 432 SAP Java Virtual Machine Profiler 444, 472, 482 SAP List Viewer 213 SAP liveCache 36, 151, 272, 274, 768, 835 SAP Logical Unit of Work (SAP LUW) 406 SAP Management Console 441, 482 SAP MaxDB 494, 772 Ausführungsplan 779 Kommandomonitor 775 Ressourcenmonitor 776 SAP NetWeaver 35 Release 7.30 32 Release 7.40 556 SAP NetWeaver Administrator 65, 67 SQL-Trace 475 SAP NetWeaver Application Server 39, 377 SAP NetWeaver Application Server ABAP 76, 277 SAP NetWeaver Application Server Java 35, 76, 277, 431 Serverknoten 445 SQL-Trace 475 SAP NetWeaver Business Warehouse 152, 380, 583, 593, 836 Administrationswerkzeuge 611 Datenselektion 628 Frontend 598 hohe Datenbankzeiten 617 Indizierung 621 Lastprofile 617 Optimierung 619 Performanceoptimierung 608 SAP HANA 697 872 SAP NetWeaver BW 36 SAP NetWeaver BW Accelerator 608, 611, 655, 661, 696, 837 Deltaindex 692 Index anlegen 689 InfoCubes indizieren 687 Monitor 819 Sizing 662 SAP NetWeaver BW Administrator Workbench 611 SAP NetWeaver Cloud 698 SAP NetWeaver Enterprise Search 36, 654, 837 SAP NetWeaver Portal 36, 38 SAP NetWeaver Process Integration 36, 830 SAP Paging Memory 291, 292, 585, 835 SAP Product Lifecycle Management (SAP PLM) 35 SAP R/3 23 SAP Roll Memory 117, 284, 309, 313 SAP Service Marketplace 313 SAP Service Marketplace, Service 71 SAP Solution Manager 72, 142, 152, 178, 214, 215, 229, 232, 235, 387, 476, 768 Analyse 70 Performanceoptimierung 71 Service Level Management 58 Tracing 70 Überwachung 68 Workload-Analyse 70 SAP Standard Application Benchmark 239, 253 SAP Supplier Relationship Management (SAP SRM) 35 SAP Supply Chain Management (SAP SCM) 35 SAP System Identifier 837 SAP Web Dispatcher 40, 239, 274, 276, 327 SAP-Anwendung, Architektur 34 SAP-Applikationsinstanz 씮 SAPInstanz SAP-Basis 35 SAPCCMSR 227 SAPconnect 144 SAP-Einführungsleitfaden (IMG) 820 2177.book Seite 873 Montag, 10. Juni 2013 11:30 11 Index SAP-Enqueue 405, 412, 421 SAP-Enqueue-Monitor 427 SAP-GUI-Transaktion End-to-End-Laufzeitanalyse 231 SAP-Instanz 76, 154, 268, 302, 833 Pflege 819 Übersicht 820 SAP-Kernel 310 SAP-Komponente 34 SAP-Lösung 34 SAP-Lösungslandschaft 35 SAP-Paging 284 SAP-Parameter, Änderung 121 SAP-Performance-Trace 189 SAP-Puffer 115, 159, 302, 312 SAP-Puffer, Zugriff 194 SAP-Puffer-Trace 196 SAP-Pufferung 525, 549, 552 Art 551 einschalten 559 generische 552 vollständige 552 SAP-Roll-Bereich globaler 285 lokaler 285 SAP-Roll-Datei 285 SAP-Roll-Puffer 285 SAProuter 837 SAPS 254, 837 SAP-Service 239, 319 SAP-Speicherbereich 301 SAP-Speicherkonfiguration 114, 127 SAP-Speicherkonfigurationsmonitor 66, 114 SAP-Speicherverwaltung 172 SAP-System 35, 77 SAP-Systemservice 837 SAP-System-Trace 821 SAP-Transaktion 405 SAP-Workprozess 41, 83, 105, 123, 303, 313, 773 Übersicht 123 Savepoint 93 Schaltfläche 837 Schattenprozess 97, 99 Schnittstellen 317 Schreib/Lese-(I/O-)Problem 86, 103 Schreib/Lese-(I/O-)Probleme 791 SD-Benchmark 253 Search Engine Service (SES) 654 Sekundärindex 494, 496, 504, 506 Ändern 511 Anlegen 511 SELECT verschachteltes 530 Select identischer 202 SELECT *-Klausel 531 Selektionsbildschirm 537 Selektivität 500, 502, 512 Semaphore 126 Sensordaten 700 Sequential Read 199 sequenzielles Lesen 씮 Lesen, sequentielles Serialisierung 127 Server 77, 837 Server, Konsolidierung 267, 270 Server-Destination-Statistiksatz 352 Service 318 Service Level Agreement 52 Service Level Management 51, 70, 73, 837 Service Level Reporting 52, 54, 57, 73 Service, Pflege 210, 394, 397 Session 361 Session Monitor 97 Shared Cursor Cache 95, 100 Shared Memory 282, 306, 361, 392, 422, 583, 787, 837 Shared Object 581 Gebietskonfiguration 584 Gebietsmonitor 584 Pufferung 550, 583 Shared Pool 94, 95 Shared SQL Area 100, 543 Shared SQL Cache 100 Sicherheit 49 SID 603, 837 SID-Tabelle 603 Simulationsanwendung 594 Single Level Storage 295 Single Point of Failure (SPOF) 320 Sizing 239, 722 benutzerbasiertes 243 durchsatzbasiertes 244 initiales 242, 247 Sizing Plausibility Check 246 873 2177.book Seite 874 Montag, 10. Juni 2013 11:30 11 Index Sizing (Forts.) T-Shirt-Sizing 242 Sizing-Projekt durchführen 249 Sizing-Prozess 241 Skalierbarkeit 248, 754, 838 horizontale 46, 838 Programm 224 vertikale 46, 838 Skeleton 803 Slave-Index-Server 673, 678 Slave-Service 754 Slice & Dice 596 Snapshot 679 Socket 464 Socket-Statistik 464 Solution Monitoring 47, 68 Sonde 478 soziales Netzwerk 699 spaltenorientierte Datenspeicherung 652, 695, 701, 703, 721, 731 Sparse-Coding 707 Speicher allokierter 119, 728 Belegung 287 Bereich 296, 312 fest allokierter (HEAP) 308 genutzter 728 globaler 282 Konfiguration 114, 281 lokaler 282, 835 physischer 120, 728 verfügbarer 300 Verwaltung 838 virtuell benötigter 300 virtueller 728, 840 Speicher, virtueller 282 Speicherabzug 220 Speicherkonfiguration 118 Speicherkonfigurationsmonitor 114, 304, 309, 427, 573, 582, 585, 632, 821 Speicherverwaltung 172 Speicherverwaltung, integrierte 433 Sperre 403, 462, 482 Datenbanksperre 404 SAP-Enqueue 404, 421 Shared-Sperren 424 Sperren mit Menge 320, 424, 425 Sperrkonflikt 408 874 Sperre (Forts.) Sperrkonzept 404 Sperrobjekt 405 Tabellensperre 411 Überwachung 407 Wartesituation 403 Spool-Service 274, 320 SQL 839 Native SQL 519 Open SQL 519, 586 SQL Editor 741 SQL Plan Cache 739 SQL Query Engine 797 SQL Server 814 SQL Server, Primärindex 816 SQL-Anweisung 71, 95, 97, 99, 100, 194, 485, 494, 512, 514, 521, 741, 770, 775 dynamische 803 optimieren 485 teure 96, 102, 487, 791, 821 verschachtelte 530 SQL-Anweisungspuffer 782 SQL-Coding 530 SQL-Monitor, HANA-Migration 740 SQL-Programmierung goldene Regeln 521, 704, 717, 760 performante 521 SQLScript 722 SQL-Statistik 100, 101, 475, 487, 489, 492, 520, 580, 739, 820 Analyse 103 DB2 790 DB2 für IBM i 797 IBM DB2 für z/OS 805 SAP MaxDB 775 SQL Server 816 SQL-Trace 66, 103, 191, 194, 195, 196, 202, 234, 483, 487, 488, 492, 522, 527, 580, 821 ST-A/PI 215 Stack Pointer 80 Stammdaten 562 Stammdatentabelle indizieren 626 Stammformerkennung 656 Star-Join-Ausführungsplan 622 Star-Schema 596, 707 Star-Schema, erweitertes 599 Statement Cache 814, 816 2177.book Seite 875 Montag, 10. Juni 2013 11:30 11 Index Statement String 804 Statistik, abgeleitete 453 Statistiksatz 177, 190, 373, 839 Statistiksatz, verteilter 177, 227 Statistik-Server 755 statistischer Einzelsatz 150, 189, 234, 565 Stemming 656 Stock 595 Stop the World 435 Stored Procedure 696, 814, 839 Structured Query Language 839 SUBMIT-Befehl 284 Subrecord 160 Suite Accelerator 698 Support Package 839 Survivor 436 Swap 116, 559, 564 Swap Space 씮 Auslagerungsspeicher Sybase 839 Sybase ASE 781 Ausführungsplan 785 Datenbankprozess 783 Datenpuffer 781 Engine 783 Synchronization Analysis 461 Synchronization Trace 482 System Global Area (SGA) 94 Systemkonsolidierung 268, 271 Systemlandschaft 267, 839 Systemlastanalyse, globale 179 Systemlastmonitor 씮 WorkloadMonitor Systemlog 820 System-Monitoring 49 Systemnachricht, versenden 820 Systempuffer 550 Systemverfügbarkeit 320 T Tabelle Analyse 576, 819 ARFCSDATA 355 ARFCSSTATE 355 ATAB 543 Buffered Objects 587 D010* 543 D010S 543 Tabelle (Forts.) D020* 543 DBDIFF 506 DBSTATC 507 DDLOG 557, 579, 584 DDNTF 543, 574 DDNTT 543, 574 gepufferte 568, 574 Hash-Tabelle 223 interne 218, 847 KAPOL 543, 568 Konditionstabelle 563 kundeneigene 571, 575 NRIV 408, 414, 420 NRIV_LOKAL 417 reorganisieren 509 RESB 63, 422, 509 SAP-eigene 571, 575 sortierte 223 SWNCMONI 156 TCURR 577 tRFC-Tabelle 356 VBBE 422 VBDATA 332 VBHDR 332, 574 VBMOD 332 Verbuchungstabelle 332, 336 Tabellengröße 575 Tabellenoperation 208 Tabellenpflege 506, 748 Tabellen-Pool ATAB 580 KAPOL 580 Tabellenpuffer 44, 193, 549, 587 generischer 542 generischer (TABL) 549 partieller (TABLP) 549 Tabellenpufferung 551 ABAP-Server 564 Java 586 Tabellenstatistik 108, 501, 507, 819 Tabellenzugriffsstatistik 565, 569, 574, 821 Table Call Statistics 씮 Tabellenzugriffsstatistik Tablespace 90 Tag 389 Task-Typ 155 TCP/IP 840 875 2177.book Seite 876 Montag, 10. Juni 2013 11:30 11 Index TDC 840 temporäre sequenzielle Objekte 840 TemSe 840 Teraspace 295 Text-Dictionary 708 Textedit Control 368 Textsuche 653 Thread 79, 80, 482, 736, 773, 783 Hardware 80 Software 80 Thread-Dump 443 Thread-Monitor 739 Timebased Sampling 455 TMS 840 TO 840 Trace, Frontend 229 Trace-Level 231 Training 844 Transaktion 405, 840 AL11 819 AL12 819 Antwortzeit 189 BALE 819 DB01 92, 105, 408, 427 DB02 92, 501, 819 DB05 576, 819 DB12 92, 819 DB13 92, 819 DB13C 92 DB20 819 DB21 507 DB24 92 DB50 772 DBACOCKPIT 66, 91, 126, 408, 505, 507, 725, 768, 772, 819, 831 DSWP 183, 479 DWDM 368 kritische 55 LISTCUBE 613, 819 ME57 538 OS06 77 OS06N 77 OS07 77 OS07N 77 OSS1 819 RSA1 611, 612, 615, 625, 643, 689, 819 RSCUSTV14 819 876 Transaktion (Forts.) RSDDBWAMON 664, 678, 692, 819 RSDDV 612, 664, 690, 819 RSMIGRHANADB 759, 819 RSODSO_SETTINGS 819 RSRCACHE 633 RSRT 612, 614, 618, 631, 664, 690, 819 RSRV 692, 819 RZ01 819 RZ02 819 RZ03 819 RZ04 819 RZ10 819 RZ11 381, 819 RZ12 819 RZ20 67, 137, 348, 362, 820 SAT 208 SBGRFCCONF 357 SBGRFCMON 357 SCII 225 SE11 504, 505, 529, 820 SE12 207, 820 SE14 505, 820 SE15 820 SE16 615, 820 SE24 225, 820 SE30 66, 224 SE37 225, 335 SE38 225, 311, 409, 539, 820 SE80 391, 541, 820 SEU 820 SHMA 584 SHMM 584 SICF 210, 394, 397 SITSMON 820 SITSPMON 66, 393 SM01 820 SM02 820 SM04 342, 820 SM12 413, 427, 820 SM13 111, 127, 332, 820 SM21 111, 127, 287, 820 SM24 583 SM30 506 SM36 820 SM37 646, 820 SM39 820 2177.book Seite 877 Montag, 10. Juni 2013 11:30 11 Index Transaktion (Forts.) SM49 820 SM50 66, 123, 219, 310, 319, 336, 342, 394, 409, 773, 820 SM51 78, 123, 132, 820 SM56 419, 820 SM58 355, 820 SM59 344, 346, 356, 820 SM63 820 SM65 820 SM66 124, 130, 319, 336, 342, 394, 408, 773, 820 SM69 820 SMGW 342 SMICM 66, 135, 381, 394, 820 SMLG 129, 319, 325, 820 SNRO 419 sperren 820 SPRO 425, 820 SQLM 740, 820 ST01 821 ST02 66, 114, 260, 300, 304, 307, 309, 427, 573, 582, 821 ST03 66, 152, 153, 179, 319, 343, 348, 362, 395, 613, 615, 616, 821 ST03G 66, 178, 179 ST03N 153, 262 ST04 92, 120, 821 ST05 194, 372, 487, 821 ST06 66, 77, 83, 86, 104, 121, 126, 260, 300, 374, 795, 821 ST06N 77 ST07 821 ST08 821 ST09 821 ST10 821 ST11 821 ST12 215, 217 ST14 821 ST22 305, 821 STAD 152, 179, 190, 343, 351, 362, 370, 371, 397, 821 STAT 565 STATTRACE 178, 179, 227 STMS 821 STUN 65, 821 SWLT 821 SXMB_MONI 821 Transaktion (Forts.) TREXADMIN 126, 663, 666, 675, 680, 821 TU02 821 VA01 174, 191 Variante 541 VL01N 191 Transaktionscode 840 Transaktionsprofil 173 Transaktionsschritt 155, 157, 284 Transformieren 599 Transmission Control Protocol/ Internet Protocol 840 Transparenz 709 Transport 840 Transport Domain Controller 840 Transport Management System 840 Transport Organizer 840 Transportdomäne 840 Transport-Management-System 821 Tree 624 Tree Control 368 Trefferrate 93 TREX 36, 44, 274, 651, 696, 837, 840 Administration 821 Anfrageprozess 658 Anwendungen 653 Architektur 657 Grundlagen 652 Index 653 Komprimierung 705 Lastübersichtsdatei 669 Optimierung 673 Performanceanalyse 665 Python-Trace 671 reorganisieren 675 Replikation 679 RFC-Server 687 SAP NetWeaver BW Accelerator 661 Serverauslastung überwachen 665 Server-Übersicht 667 Sizing 660 Suchfunktionen 655 verteilte Installation 674 Werkzeuge 663, 719 T-Shirt-Sizing 242 Tune Summary 114 Tuning 545 Applikationstuning 59, 74 877 2177.book Seite 878 Montag, 10. Juni 2013 11:30 11 Index Tuning (Forts.) Programmoptimierung 60 technisches 59, 63 Tupel-Rekonstruktion 704 U Überwachungskonzept 47, 51 Unicode 264, 283, 302 Unicode-Konvertierung 265 Uniform Resource Locator 840 UNIX 85, 324 UNIX, Standardimplementierung 295 Unternehmens-IMG 840 Untersatz 151 Upgrade 264 URL 840 User Call 96 User Kernel Thread (UKT) 773 User-Exit 247 V Value-Per-Unit 595 Variante 213 Verbuchung 110, 330, 363 asynchrone 331 Auftrag 331 deaktivierte 127 Dispatching 333 lokale 336 Prioritätensteuerung 334 Service 319 synchrone 336 Tabelle 331 V1-Verbuchung 334 V2-Verbuchung 334 V3-Verbuchung 334 Verbuchungsart 334 Verbuchungszeit 336 Workprozess 331, 332 Verbuchungssatz 820 Verbuchungsservice 274 Verdrängung 씮 Swap Verfügbarkeit 48, 181, 319 Verfügbarkeitsprüfung 421, 583 Verifikation 63 verteilter Statistiksatz 177 878 Virtual Machine Container (VMC) 273, 274, 317, 360, 840 Virtualisierung 269 virtueller Hautspeicher 313 virtueller Provider 596 virtueller Speicher 282 VMC 씮 Virtual Machine Container (VMC) VMC-Service 274 Vorverarbeitung verteilen 673, 683 W WAN 841 WBO 841 Web Dynpro 841 Web Dynpro ABAP 39, 206, 210, 367, 377, 388, 394 Web Dynpro Java 367, 378 Web GUI 378 Web Reporting 598 Web Template, Vorberechnung 636 Webanwendung 379, 387 Webbrowser 830 Webservice 37, 241, 378 ABAP 394 Aufrufe überwachen 397 Webtransaktion 229 WHERE-Klausel 524 Wide Area Network (WAN) 46, 841 Windows 86, 293, 324 Workbench Organizer 841 Workgroup 325 Workload-Analyse 25, 59, 149, 150, 157, 165, 478, 483 Workload-Monitor 66, 151, 152, 153, 156, 173, 227, 262, 319, 343, 362, 395, 613, 821 BW-Systemlast 616 Java 183 Rolle 153 zentraler 178, 179 Workload-Übersicht 180 Workprozess 41, 127, 129, 273, 285, 321, 362, 841 ABAP-Trace 209 Anzahl erhöhen 364 Java Virtual Machine 442 Nicht-Dialog-Workprozess 290 2177.book Seite 879 Montag, 10. Juni 2013 11:30 11 Index Workprozess-Monitor 336, 394 Workprozess-Typ 155 Workprozess-Übersicht 66, 98, 123, 196, 219, 310, 319, 342, 408, 409, 773, 820 Workprozess-Übersicht, globale 130, 820 World Wide Web 841 WP 씮 Workprozess WWW 841 X XML 841 XS-Server 720 Y Young Generation 433, 438 Z zeilenorientierte Datenspeicherung 702 Zeitabhängigkeit 603, 608 Zeitdimension 605 Zeitflusshierarchie 216 Zeitprofil 180 zentrale Einzelsatzstatistik 226 zentraler Überwachungsmonitor 67, 820 zentrales Monitoring-System 179 Zero Administration Memory Management 118, 293, 297, 313 Zugriffsplan 790 879