SAP -Performanceoptimierung

Ähnliche Dokumente
1 Performancemanagement einer SAP-Lösung Analyse von Hardware, Datenbank und ABAP-Applikationsserver Workload-Analyse 149

Inhalt. Performancemanagement einer SAP-Lösung. Analyse von Hardware, Datenbank und ABAP-Applikationsserver

SAP-Performanceoptimierung

Formeln und Checklisten zur Performanceanalyse

Geschäftsprozessmodellierung und implementierung am Beispiel SAP ERP

SAP -Performanceoptimierung

SAP on HANA Durchführung einer OS/DB Migration

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Enterprise Portal - Abbildung von Prozessen, SAP-Datenintegration und mobile Apps

Teil I. Allgemeine System-Administration. Windows Server 2016 Neues, Lizenzierung und Download... 23

G DATA TechPaper. Update auf Version 14.1 der G DATA Unternehmenslösungen

Qualifikationsprofil CG

Zielsetzung. Fachlicher Schwerpunkt. Besondere Qualifikation. Fortbildung

G DATA TechPaper. Update auf Version 14.2 der G DATA Unternehmenslösungen

Virtualisierung von SAP -Systemen

Datenbanksysteme. Donald Kossmann TU München

11.3 Transaktionen und LUWs in SAP R/3

2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver

PROJESS. Projekt-Stundenverwaltung via Web-Browser.

Auf einen Blick D ie We lt vo n SA P Der Einstieg ins System Mandanten SAP-Berechtigungen ABAP-Dictionary-Objekte SAP-Entwicklungsobjekte

SAP Analytics für KMU. Oktober 2017

AMACOS. Installationshandbuch. Client und Server. Solunex AG Niederholzstrasse 17 CH-8951 Fahrweid. Tel.: +41 (0)

Praxishandbuch SAP NetWeaver Visual Composer

Oracle Database 12c: Administration Workshop Ed 2

DIMEX Data Import/Export

1 Performancemanagement einer SAP-Lösung Analyse von Hardware, Datenbank und ABAP-Applikationsserver Workload-Analyse...

Industrie 4.0 und Smart Data

Unternehmensdokumente mit dem XML Publisher erzeugen

M5000 einfach ablösen durch T4/T5 LDoms und Solaris Zonen

MICROSOFT SQL ASSESSMENTS. Von Axians IT Solutions

11.3 Transaktionen und LUWs in SAP R/3

Technische Voraussetzungen

ZENTRALE SAP- DOKUMENTATIONSARTEN KNOWLEDGE DESIGN & ENGINEERING (KDE)

Upgrade auf Microsoft Dynamics CRM 2013

Installation und Konfiguration

Erfahrungsbericht, Konsolidierung und Administration Real Application Cluster

Inhalt. Einführung RFC-Funktionsbausteine in ABAP Funktionsbausteine zum Lesen Aufruf per srfc 108

Technik der SAP-Anbindung Christian Aigner Team Entwicklung, Kranzberg

Application Designer & Framework unlimited

Jo Weilbach, Mario Herger SAP xapps - Architektur und Entwicklung mit dem Composite Application Framework. Galileo Press

Dineso Software - Technische Daten

Inhalt. TEIL I Grundlagen. 1 SAP HANA im Überblick Einführung in die Entwicklungsumgebung... 75

BERATERPROFIL. Grundkenntnisse in ABAP/4 und SQL. MS - Exchange MS - ISA MS - IIS MS - Terminalserver. Oracle MAX DB (SAP DB) Microsoft SQL - Server

Systemvoraussetzungen CAS genesisworld

Exadata Engineered Systems als Lösung? Reinhold Boettcher, Systemarchitekt Infrastruktur, arvato Systems

Andre Faustmann, Michael Greulich, Andre Siegling, Torsten Urban. SAP BusinessObjects. Systemadministration. Galileo Press.

IAC-Programmierung HELP.BCFESITSIACPROG. Release 4.6C

UI Technologien für SAP-Anwendungen

EPO Consulting GmbH. Ihr Partner für HTML5 und SAP UI5 Apps. Stand 2015/04. EPO Consulting GmbH - 1 -

FL SNMP OPC SERVER V3

Systemanforderungen und unterstützte Software

SAP R/3 Prozessübersicht

Wie setzt Swisscom Solaris 11 ein

HANA CLOUD CONNECTOR

Systemvoraussetzungen

Oracle GridControl Tuning Pack. best Open Systems Day April Unterföhring. Marco Kühn best Systeme GmbH

CADEMIA: Einrichtung Ihres Computers unter Windows

Abitur mit Schwerpunkt Wirtschaft und Verwaltung Studium Wirtschaftsinformatik Universität Essen

PM/CS - Datenübernahme in Instandhaltung und Kundenservice

Auf einen Blick. TEIL 1 Quelltext bearbeiten 17 TEIL 2 Quelltext automatisch erzeugen 73 Mit Zusatzinformationen zu. Entwicklungsobjekten arbeiten 97

XML Publisher die universelle Lösung für Geschäftsdokumente

Unterrichtseinheit 10

macs Software GmbH macs Complete Hard- und Softwareanforderungen

Errataliste zum Buch SAP-Änderungs- und Transportmanagement, 3. Auflage

PLATO-Systemanforderungen

CARM und CARM-NG Server Automatisierung mit Agenten; Schnittstellen zu anderen Datenbanken; Web-Enabled

Das Grundlagenbuch zu FileMaker Pro 7- Datenbanken erfolgreich anlegen und verwalten

SAPTEC. SAP NetWeaver Application Server Grundlagen GLIEDERUNG DES KURSES. Version der Schulung: 17 Dauer der Schulung: 4 Tag(e)

Berater-Profil SAP Basis Berater - BC, Netweaver -

SAPTEC. Technologische Grundlagen für SAP S/4HANA und SAP Business Suite GLIEDERUNG DES KURSES. Version der Schulung: 18 Dauer der Schulung:

CLIQ Manager Installation im Netzwerk

Citrix. Kategorie FILESERVICE. Service KOMMUNIKATION UND INFRASTRUKTUR-FILESERVICE. Kurzbeschreibung. Beschreibung

Systemvoraussetzungen für ConSol CM Version Architektur Überblick

Monitoring von SAP- Systemen mit NetEye

Wenn Ihr Kunde anruft, hat s bei Ihnen längst geklingelt!

NCP Secure Enterprise Management (für Windows-Betriebssysteme) Neue Features Version 1.03 bis 2.04

Sotograph im Einsatz bei der FIDUCIA IT AG. Harald Doderer, Technische Architektur

2nd & 3rd Level Support (m/w)

Profitieren Sie von einer offenen und flexiblen Clouddienstplattform

Michael Arlati. Neubüntenweg Aesch Jahre Progymnasium, 4147 Aesch ( )

Robert Graf CEO Mobile

Systemvoraussetzungen für Windows Server 2012 Windows Server 2012 R2 Windows Server 2016

LDom Performance optimieren

Oracle 10g Einführung

SmartExporter 2018 R1

Oracle8 & Recovery Handbuch

Installation und Konfiguration

Franz Josef Heiss, Erich Weirich, Gisela Gratzl. SAP NetWeaver Web Application Server

30 Jahre Server Von Transaktionssystemen zu Web-Services

SAP Integration von Business Objects am Beispiel von SAP Student Lifecycle Management. Anke Noßmann Syncwork AG

Auf einen Blick. 1 Konzepte von SAP S/4HANA Die technischen Säulen von SAP S/4HANA Prinzipien des Redesigns...

Transkript:

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

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

Inhalt Inhalt Vorwort und Danksagung... 17 Einleitung... 19 1 Performancemanagement einer SAP-Lösung... 33 1.1 Die Architektur von SAP-Lösungen... 34 1.1.1 SAP-Lösungen und -Komponenten... 34 1.1.2 Client-Server-Architektur... 38 1.2 Das Überwachungs- und Optimierungskonzept für eine SAP-Lösung... 47 1.2.1 Anforderungen an ein Überwachungsund Optimierungskonzept... 47 1.2.2 Service Level Management... 51 1.2.3 Das Konzept für eine kontinuierliche Performanceoptimierung... 58 1.2.4 Werkzeuge und Methoden für das Überwachungs- und Optimierungskonzept... 65 1.2.5 SAP Solution Manager... 67 1.3 Zusammenfassung... 72 2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver... 75 2.1 Begriffsklärungen... 76 2.2 Hardwareanalyse... 77 2.2.1 Analyse eines Hardwareengpasses (CPU und Hauptspeicher)... 79 2.2.2 Identifizierung von Schreib-/Lese-(I/O-)Problemen... 86 2.2.3 Weitere Analysen auf Betriebssystemebene... 87 2.3 Datenbankanalyse... 89 2.3.1 Der Performancemonitor im DBA-Cockpit... 90 2.3.2 Analyse der Datenbankpuffer... 92 2.3.3 Identifizierung teurer SQL-Anweisungen... 96 2.3.4 Identifizierung von Schreib-/Lese-(I/O-)Problemen... 103 2.3.5 Weitere Analysen auf Datenbankebene... 105 2.4 Analyse der SAP-Speicherkonfiguration... 114 2.4.1 Analyse der SAP-Puffer... 115 7

Inhalt 2.4.2 Analyse des SAP Extended Memorys, des SAP Heap Memorys und des SAP Roll Memorys... 117 2.4.3 Anzeige des allokierten Speichers... 119 2.4.4 Weitere Monitore zur detaillierten Analyse... 121 2.5 Analyse der SAP-Workprozesse... 123 2.5.1 Felder der Workprozess-Übersicht... 124 2.5.2 Analyse der Workprozesse... 127 2.5.3 Globale Workprozess-Übersicht... 130 2.5.4 Überwachung der Dispatcher-Queue... 132 2.6 Analyse des Internet Communication Managers (ICM)... 134 2.7 Kontinuierliche Überwachung mit dem CCMS... 135 2.7.1 Mit dem Überwachungsmonitor arbeiten... 137 2.7.2 Monitoring-Baum einrichten... 141 2.7.3 Automatische Alert-Benachrichtigung einrichten... 144 2.7.4 Grafische Benutzeroberfläche im SAP Solution Manager... 145 2.8 Zusammenfassung... 146 3 Workload-Analyse... 149 3.1 Grundlagen der Workload-Analyse und der Laufzeitanalyse... 150 3.2 Der Workload-Monitor... 153 3.2.1 Mit dem Workload-Monitor arbeiten... 153 3.2.2 Technische Einstellungen zum Workload-Monitor... 156 3.3 Workload-Analyse... 157 3.3.1 Ablauf eines Transaktionsschrittes... 157 3.3.2 Weitere Zeitkomponenten... 160 3.3.3 Interpretation der Antwortzeiten... 161 3.3.4 Aktivität, Durchsatz und Last... 163 3.4 Workload-Analyse durchführen... 165 3.4.1 Allgemeines Performanceproblem analysieren... 165 3.4.2 Spezielles Performanceproblem analysieren... 173 3.5 End-to-End-Workload-Analyse... 176 3.5.1 Grundlagen der End-to-End-Workload- Analyse... 177 3.5.2 Der zentrale Workload-Monitor... 178 8

Inhalt 3.5.3 Mit dem zentralen Workload-Monitor arbeiten... 179 3.5.4 Der End-to-End-Workload-Monitor im SAP Solution Manager... 183 3.6 Zusammenfassung... 184 4 Identifizierung von Performanceproblemen in ABAP-Programmen... 189 4.1 Einzelsatzstatistik... 189 4.2 Performance-Trace... 194 4.2.1 Performance-Trace erstellen... 195 4.2.2 SQL-Trace auswerten... 196 4.2.3 Weitere Funktionen im SQL-Trace... 202 4.2.4 Puffer-Trace auswerten... 204 4.2.5 RFC-Trace auswerten... 205 4.2.6 HTTP-Trace auswerten... 206 4.2.7 Enqueue-Trace auswerten... 207 4.3 Performanceanalyse mit dem ABAP-Trace (Laufzeitanalyse)... 208 4.3.1 ABAP-Trace erstellen... 209 4.3.2 ABAP-Trace auswerten... 211 4.3.3 Varianten verwenden... 213 4.3.4 Ausblick: Einzeltransaktionsanalyse... 215 4.3.5 Mit der Einzeltransaktionsanalyse arbeiten... 217 4.4 Analyse des Speicherverbrauchs mit dem ABAP Debugger und im Memory Inspector... 218 4.5 Code Inspector... 225 4.6 Zentrale Einzelsatzstatistik... 226 4.7 End-to-End-Laufzeitanalyse im SAP Solution Manager... 229 4.7.1 Laufzeitanalyse einschalten... 229 4.7.2 End-to-End-Laufzeitanalyse im SAP Solution Manager anzeigen... 232 4.8 Zusammenfassung... 234 5 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

Inhalt 5.1.3 SAP Standard Application Benchmarks... 253 5.2 Sizing bei Laststeigerung, Versionswechsel oder Migration... 258 5.2.1 Übersicht über ein Sizing-Projekt im Umfeld einer bereits produktiven Installation... 258 5.2.2 Sizing im Umfeld produktiver Installationen im Detail durchführen... 259 5.3 Systemlandschaft planen... 267 5.3.1 Verteilung von SAP-Applikationsinstanzen... 268 5.3.2 Hardwarekonsolidierung... 269 5.3.3 System- und Datenbankkonsolidierung... 271 5.4 Services des SAP NetWeaver Application Servers... 273 5.5 Zusammenfassung... 278 6 Speicherkonfiguration... 281 6.1 Grundlagen der Speicherkonfiguration... 282 6.1.1 Begriffsklärungen... 282 6.1.2 SAP Role Memory, SAP Extended Memory, SAP Heap Memory... 284 6.1.3 SAP Extended Global Memory und SAP Paging Memory... 291 6.2 Besonderheiten der Betriebssysteme... 293 6.2.1 Zero Administration Memory Management für Microsoft Windows... 293 6.2.2 Memory Management für Linux... 295 6.2.3 Memory Management für IBM i... 295 6.3 Speicherbereiche konfigurieren und überwachen... 296 6.3.1 Auslagerungsspeicher überwachen... 299 6.3.2 SAP-Speicherbereiche konfigurieren und überwachen... 301 6.3.3 Hilfe zur Fehlerbehebung... 305 6.4 Zusammenfassung... 312 7 Lastverteilung und Remote Function Calls... 317 7.1 Lastverteilung innerhalb der ABAP-Instanzen... 318 7.1.1 Message-, Enqueue- und ATP-Service verteilen... 320 7.1.2 Dialog-, Hintergrund- und Spool- Workprozesse verteilen... 320 10

Inhalt 7.1.3 Benutzer und Workprozesse auf CPU-Ressourcen verteilen... 321 7.1.4 Dynamische Benutzerverteilung: Anmeldegruppen konfigurieren... 324 7.1.5 Ressourcen pro Benutzer beschränken... 328 7.1.6 Betriebsarten... 329 7.1.7 Dynamische Workprozesse konfigurieren... 329 7.1.8 Verbuchung... 330 7.2 Remote Function Calls (RFC)... 338 7.2.1 Grundlagen und Begriffe... 338 7.2.2 Ablauf eines RFCs... 341 7.2.3 RFC-Verbindungen konfigurieren und testen... 344 7.2.4 Eingehende und ausgehende Last überwachen... 348 7.2.5 Parallelisierung von Prozessen mit asynchronen RFCs konfigurieren... 354 7.2.6 Datenübertragung mit transaktionalen RFCs überwachen... 355 7.2.7 Hintergrund-RFCs... 357 7.3 Neues Lastverteilungskonzept... 357 7.4 SAP Virtual Machine Container... 360 7.5 Zusammenfassung... 362 8 SAP GUI und Internetanbindung... 367 8.1 SAP GUI... 368 8.1.1 Interaktionsmodell und Performancemessung... 368 8.1.2 Performance der GUI-Kommunikation analysieren und optimieren... 371 8.2 SAP-Webanwendungen... 377 8.2.1 Einsatz von Web UI und SAP GUI planen... 378 8.2.2 HTTP-Trace im Internet Communication Manager... 380 8.3 Analysen auf dem Präsentationsserver... 381 8.3.1 Präsentationsserver-Trace für Webanwendung... 383 8.3.2 Performancewerkzeuge des Betriebssystems... 386 8.3.3 Webanwendungen kontinuierlich überwachen... 387 11

Inhalt 8.4 Business Server Pages (BSP), Web Dynpro ABAP und integrierter ITS... 388 8.4.1 Grundlagen von Business Server Pages und Web Dynpro ABAP... 388 8.4.2 Grundlagen des integrierten ITS... 392 8.4.3 Grundlagen von ABAP-Webservices... 394 8.4.4 Performanceanalyse von ABAP- Webservices, BSPs, Web-Dynpro-ABAPund ITS-Anwendungen durchführen... 394 8.4.5 Aufrufe von Webservices überwachen... 397 8.5 Zusammenfassung... 398 9 Sperren... 403 9.1 Sperrkonzepte von Datenbanksystem und SAP-System... 404 9.1.1 Datenbanksperren... 404 9.1.2 SAP-Enqueues... 405 9.2 Überwachung von Sperren... 407 9.2.1 Datenbanksperren... 408 9.2.2 SAP-Enqueues... 412 9.3 Nummernkreispufferung... 414 9.3.1 Grundlagen... 414 9.3.2 Nummernkreispufferung einschalten... 419 9.3.3 Nummernkreispufferung überwachen... 420 9.4 Sperren mit Menge und ATP-Server... 421 9.4.1 Grundlagen... 422 9.4.2 ATP-Server konfigurieren... 424 9.4.3 ATP-Server überwachen... 426 9.5 Zusammenfassung... 427 10 Optimierung der Java Virtual Machine und von Java-Programmen... 431 10.1 Garbage Collection... 433 10.1.1 Aufbau des Java Heaps... 433 10.1.2 Garbage-Collection-Algorithmen... 435 10.1.3 Auswahl des Kollektors... 436 10.1.4 Parametrisierung des Java Heaps und der Garbage Collection... 438 10.1.5 Protokollierung von Garbage Collections... 439 10.2 Just-in-Time-Compiler... 440 12

Inhalt 10.3 SAP Management Console... 441 10.4 SAP Java Virtual Machine Profiler... 444 10.4.1 Architektur... 444 10.4.2 Verbindungsaufbau... 445 10.4.3 Allocation Analysis... 448 10.4.4 Performance Hotspot Analysis... 455 10.4.5 Method Parameter Analysis... 459 10.4.6 Synchronization Analysis... 461 10.4.7 File- und Network-I/O-Analysis... 464 10.4.8 Garbage Collection Analysis... 466 10.4.9 Klassenstatistik und Heap Dump... 469 10.5 Memory Analyzer... 471 10.5.1 HPROF-Dateien erstellen... 472 10.5.2 Analyse des Java Heaps mit dem Memory Analyzer... 472 10.6 Lokale Datenbankmonitore und SQL-Trace im SAP NetWeaver AS Java... 475 10.7 Java-Workload- und Laufzeitanalyse mit CA Wily Introscope... 478 10.7.1 Funktionsweise von Introscope... 478 10.7.2 Mit dem WebView und der Workstation von Introscope arbeiten... 479 10.7.3 Introscope Trace... 481 10.8 Zusammenfassung... 482 11 Optimierung von SQL-Anweisungen... 485 11.1 Teure SQL-Anweisungen identifizieren und analysieren... 487 11.1.1 Identifizierung und Voranalyse... 487 11.1.2 Detaillierte Analyse... 490 11.2 SQL-Anweisungen durch Sekundärindizes optimieren... 494 11.2.1 Ein wenig Theorie... 494 11.2.2 Indizes und Tabellenstatistiken administrieren... 504 11.2.3 Regeln zum Anlegen oder Ändern von Sekundärindizes... 511 11.3 SQL-Anweisungen im ABAP-Programm optimieren... 521 11.3.1 Regeln für die performante SQL- Programmierung... 521 13

Inhalt 11.3.2 Beispiel für die Optimierung eines ABAP-Programms... 527 11.3.3 Vorbelegung von Feldern in Reporttransaktionen... 537 11.4 Teure SQL-Anweisungen durch falsche Puffereinstellungen und Administrationswerkzeuge... 542 11.5 Zusammenfassung... 544 12 SAP-Pufferung... 549 12.1 Grundlagen der Tabellenpufferung... 551 12.1.1 Pufferungsarten... 551 12.1.2 Pufferzugriffe... 554 12.1.3 Puffersynchronisation... 556 12.1.4 Pufferung einschalten... 559 12.1.5 Welche Tabellen sollen gepuffert werden?... 561 12.2 Tabellenpufferung auf dem ABAP-Server überwachen... 564 12.2.1 Tabellenzugriffsstatistik... 565 12.2.2 Analyse der gepufferten Tabellen... 568 12.2.3 Analyse der bisher nicht gepufferten Tabellen... 574 12.2.4 Detaillierte Tabellenanalyse... 576 12.2.5 Monitor zur Puffersynchronisation (DDLOG-Einträge)... 579 12.2.6 SQL-Statistik und SQL-Trace... 579 12.3 Objektorientierte Anwendungspuffer überwachen... 580 12.4 Tabellenpufferung auf dem SAP NetWeaver AS Java überwachen... 586 12.5 Zusammenfassung... 589 13 Optimierung von Anfragen an SAP NetWeaver Business Warehouse... 593 13.1 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 14

Inhalt 13.1.3 Möglichkeiten der Performanceoptimierung im Überblick... 608 13.1.4 BW-Administrationswerkzeuge im Überblick... 611 13.2 Analyse teurer BW-Anfragen... 613 13.3 Technische Optimierungsoptionen im Detail... 619 13.3.1 Indizierung administrieren... 621 13.3.2 Einstellungen zur Datenselektion... 628 13.3.3 Komprimieren der Faktentabelle... 629 13.3.4 OLAP-Cache überwachen... 630 13.3.5 Vorberechnung von Reports... 635 13.3.6 Aggregate... 637 13.4 Zusammenfassung... 647 14 Optimierung von Suchanfragen mit TREX... 651 14.1 Grundlagen und Architektur des TREX unter Performancegesichtspunkten... 652 14.1.1 TREX-Einsatzszenarien und Suchfunktionen... 653 14.1.2 Architektur des TREX... 657 14.1.3 Besonderheiten des SAP NetWeaver BW Accelerators... 661 14.1.4 TREX-Administrationswerkzeuge im Überblick... 663 14.2 Performanceanalyse auf dem TREX durchführen... 665 14.2.1 Auslastung der TREX-Server überwachen... 665 14.2.2 Python-Trace erstellen und auswerten... 671 14.2.3 Performance-Trace erstellen und auswerten... 672 14.3 Technische Optimierungsoptionen im Detail... 673 14.3.1 Indizes teilen... 674 14.3.2 TREX reorganisieren... 675 14.3.3 Deltaindizes einsetzen... 676 14.3.4 Master- und Slave-Index-Server verwenden... 678 14.3.5 Queue-Server konfigurieren... 682 14.3.6 RFC-Verbindungen vom ABAP-System zum TREX erhöhen... 687 14.4 InfoCubes im BWA indizieren... 687 14.5 Zusammenfassung... 693 15

Inhalt 15 Optimierung von Datenbankanfragen mit SAP HANA... 695 15.1 SAP HANA-Einsatzszenarien... 697 15.2 Grundlagen der Hauptspeicherdaten in SAP HANA und TREX... 701 15.2.1 Spaltenorientierte Datenspeicherung... 703 15.2.2 Datenkomprimierung... 705 15.2.3 Datenhaltung im Hauptspeicher... 709 15.2.4 Partitionierung und Parallelisierung... 712 15.2.5 Indizierung... 713 15.2.6 Datenmodellierung aus Performancesicht... 716 15.3 SAP HANA-Architekturüberblick und Sizing... 719 15.3.1 SAP HANA-Architekturüberblick... 719 15.3.2 Sizing... 722 15.3.3 HANA-Administrationswerkzeuge im Überblick... 725 15.4 Technische Optimierungsoptionen im Detail... 728 15.4.1 Hauptspeicheranalyse... 728 15.4.2 Identifizierung und Analyse teurer SQL-Anweisungen... 736 15.4.3 Indizes anlegen (invertierter Index, konkatenierter Index)... 745 15.4.4 Deltaindizes administrieren... 749 15.4.5 Lastverteilung, Parallelisierung und Partitionierung... 753 15.4.6 Optimierung von InfoCubes und DataStore-Objekten für SAP HANA... 756 15.5 Zusammenfassung... 760 Anhang... 765 A Datenbankmonitore... 767 B Wichtige Transaktionscodes... 819 C Fragen und Antworten... 823 D Glossar... 829 E Informationsquellen... 843 F Der Autor... 858 Index... 859 16

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«performanceoptimierung 19

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 Optimierung von Applikationen 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. 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

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 SAP- Lö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 Proaktives Performancemanagement 21

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 SQL- Anweisungen 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) schnellere Antwortzeiten bei bestimmten Transaktionen kürzere Downtime bei Wartungsarbeiten Hardwareinvestitionen können gestreckt werden. geringerer Personalbedarf bei Wartungsarbeiten Datenbankgröße bleibt»beherrschbar«. 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

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 HANA- Datenbankplattform ein, da zu den weiteren Services die Felderfahrungen noch fehlen. SAP HANA 23

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 Kleine»Fehler«große Wirkung 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. 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

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 Grundlagen des Buches 25

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 Kapitel 3: Workload-Analyse Kapitel 4: Programmanalyse AS ABAP DB AS ABAP DB AS ABAP DB Detailanalyse und Optimierung Applikationsserver Kapitel 5: Sizing, Lastverteilung AS ABAP AS Java DB Kapitel 6: Speicherkonfiguration Kapitel 7: Lastverteilung, Remote Function Calls AS ABAP AS ABAP Kapitel 8: SAP GUI und Internetanbindung Kapitel 9: Sperren AS ABAP Kapitel 10: SAP JVM und Java-Programme AS ABAP DB AS Java Datenbank Kapitel 11: SQL-Anweisungen Kapitel 12: Pufferung AS ABAP AS Java DB Kapitel 13: SAP BW AS ABAP DB Kapitel 14: TREX Kapitel 15: HANA Abbildung 2 Die Kapitel dieses Buches 26

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: Aufbau 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

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 SAP- Betreuer, 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

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 Java- Programmen«: 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

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 Voraussetzungen Grenzen des Buches 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. 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. 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

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 Releaseabhängigkeit 31

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 Hinweise zur Lektüre Alle Angaben zu Menüpfaden, Bezeichnungen in den Bildschirmen der Performancemonitore und Richtwerten für Performancekennzahlen beziehen sich sofern nicht anders vermerkt auf SAP Net- Weaver 7.30. An einigen Stellen geben wir bereits einen Ausblick auf SAP NetWeaver 7.40. 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

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

2 Analyse von Hardware, Datenbank und ABAP-Applikationsserver Wann sollten Sie dieses Kapitel lesen? Dieses Kapitel sollten Sie lesen, wenn Sie die Performance des SAP- Systems, der Datenbank oder des Betriebssystems vom SAP-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 SAP-Applikationsinstanz Datenbank Ein Rechner (oder Computer) ist eine physische Maschine mit CPU, Hauptspeicher, IP-Adresse etc. Eine SAP-Applikationsinstanz, auch kurz als SAP-Instanz bezeichnet, ist eine administrative Einheit: Sie besteht aus einem Satz von SAP- Workprozessen, die von einem Dispatcher verwaltet werden, 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 Net- Weaver 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. 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

Hardwareanalyse 2.2 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 Net- Weaver Application Server (AS) ABAP bzw. Java. Server 2.2 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- Aufruf und Verfügbarkeit 77

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