Die Sap Sat Transaktion stellt das neue und maßgebliche Werkzeug für die ABAP-Laufzeitanalyse dar, welches zu den wichtigsten Neuerungen in ABAP mit NetWeaver 7.0 EhP2 zählt. Für alle, die bereits mit der Transaktion SE30, dem früheren ABAP-Laufzeitanalysewerkzeug, vertraut sind: Die Transaktion SAT ist der offizielle Nachfolger von SE30. Die ABAP-Laufzeitanalyse wurde von der SAP R&D-Abteilung grundlegend überarbeitet und durch effektive neue Analysewerkzeuge und Funktionen erweitert. SAP SAT bietet zahlreiche Vorteile wie eine moderne Benutzeroberfläche, innovative Analysetools und eine einfache Navigation zwischen den verschiedenen Funktionen. Als direkter Nachfolger von Transaktion SE30 sollte SAP SAT für alle Performance-Messungen genutzt werden. Wer die SE30 gewohnt ist, wird erfreut feststellen, dass die Kernfunktionalität der Performance-Analyse in SAT erhalten geblieben und lediglich durch neue, leistungsfähigere Werkzeuge ergänzt wurde.
Dieser Beitrag ist Teil einer Artikelreihe über SAP SAT und widmet sich der Analyse von Performanceproblemen. Er demonstriert, wie die neuen Tools und Funktionen von SAP SAT Ihnen effizient dabei helfen, die Performance jeder ABAP-Anwendung zu analysieren. Die gesamte Reihe richtet sich sowohl an Einsteiger als auch an erfahrene SE30-Benutzer, die ihre Expertise im Bereich der ABAP-Performanceoptimierung erweitern möchten. Informationen zu weiteren Aspekten, wie dem Speicherverbrauch oder der Analyse des Programmflusses, finden Sie in anderen Teilen dieser Reihe. Für einen visuellen Einblick in die Funktionen von SAP SAT steht Ihnen auch eine kurze Videodemonstration zur Verfügung.
Um Ihre Kenntnisse in spezifischen SAP-Bereichen zu vertiefen oder sich über neue Entwicklungen zu informieren, empfehlen wir einen Blick auf die neuesten Informationen zu SAP S/4HANA 2021.
1. Performanceprobleme analysieren mit SAP SAT
Stellen Sie sich die folgende Situation vor: Ihr ABAP-Programm läuft, und es läuft, und es läuft… Sie fragen sich: Warum benötigt dieses scheinbar kurze ABAP-Programm so viel Ausführungszeit? Um die Antwort zu finden, würden einige von Ihnen vielleicht den SQL-Trace aktivieren, um langsame SELECT-Anweisungen auf der Datenbank zu überprüfen, oder sogar versuchen, das Programm zu debuggen. Diese Überprüfungen können jedoch viel Zeit in Anspruch nehmen. Tatsächlich ist die ABAP-Laufzeitanalyse der beste Ausgangspunkt für jede Performanceanalyse. Hier erhalten Sie schnell Informationen über die Ursache eines Performanceproblems: Handelt es sich um ein ABAP- oder ein Datenbankproblem? Betrifft es Ihre Komponente oder nicht? SAP SAT bietet hierfür die idealen Werkzeuge.
Es ist nun an der Zeit zu erklären, wie Performance-Messungen mit SAP SAT durchgeführt und analysiert werden. Nehmen wir das folgende Szenario als Beispiel: Stellen Sie sich vor, Sie befinden sich in der ABAP Workbench (Transaktion SE80) und versuchen, alle Knoten des BASIS-Pakets zu erweitern. Sie stellen fest, dass dies einige Zeit in Anspruch nimmt. Lassen Sie uns die Performance dieses Vorgangs mit SAP SAT analysieren.
Zuerst müssen Sie die ABAP-Laufzeitanalyse (SAP SAT) starten und eine Messvariante erstellen. Dies ist ein entscheidender Schritt, um die Analyse auf Ihre spezifischen Bedürfnisse abzustimmen und relevante Daten zu erfassen.
- Starten Sie die ABAP-Laufzeitanalyse (SAP SAT) über System -> Dienstprogramme -> Laufzeitanalyse -> Ausführen oder rufen Sie die Transaktion “/nsat” direkt auf.
- Geben Sie “SE80” in das Feld Transaktion ein.
- Wählen Sie Sofort auswerten, um die Analyse direkt nach der Messung zu starten.
- Wählen Sie Namen von internen Tabellen ermitteln, um die Quellcode-Namen von internen Tabellen in der Messung zu sehen.
- Erstellen Sie Ihre eigene Messvariante:
- Geben Sie einen Namen in das Feld Variante ein und drücken Sie die Schaltfläche Anlegen.
- Wählen Sie auf der Registerkarte Dauer und Typ die Aggregation Pro Aufrufposition.
- Wählen Sie auf der Registerkarte Anweisungen zusätzlich zu den Standardoptionen auch Operationen auf internen Tabellen aus.
- Speichern Sie Ihre Variante.
- Drücken Sie die Schaltfläche Ausführen, um die Messung zu starten.
Erstellung einer Messvariante in SAP SAT für die Performanceanalyse
In der ABAP Workbench (SE80) wählen Sie das BASIS-Paket aus. Öffnen Sie das Paket, indem Sie die Schaltfläche Alle Knoten erweitern wählen, und klappen Sie anschließend den Objektbaum mit der Schaltfläche Alle Knoten zuklappen wieder ein. Kehren Sie schließlich zu SAP SAT zurück, indem Sie die grüne Schaltfläche Zurück drücken.
Für aggregierte Messungen zeigt SAP SAT die wichtigsten Auswertungswerkzeuge auf Desktop 1 an. Dies sind das Profil-Tool und das Hit-List-Tool. Diese Tools bieten einen umfassenden Überblick und detaillierte Einblicke in die Performance Ihrer Anwendung. Wenn Sie externe Unterstützung benötigen, kann eine erfahrene Consultoria SAP Sie bei der Interpretation dieser Daten und der Ableitung von Optimierungsstrategien unterstützen.
Werfen wir einen Blick auf die Messergebnisse im Profil-Tool. Das Profil-Tool gibt einen breiten Überblick über die Verteilung der Laufzeiten der Anwendung. Auf den ersten Blick wirkt die Anzeige recht technisch: Es ist die Anzeige nach dem Trace-Lauf. Glücklicherweise gibt es jedoch links die Schaltfläche “Andere Hierarchie“, mit der Sie Laufzeiten nach Komponenten, die Sie interessieren, nach Paketen und so weiter gruppieren können.
Lassen Sie uns unsere Performance-Messergebnisse auswerten. Die detaillierte Analyse dieser Daten ist entscheidend, um die Wurzel des Problems zu finden und gezielte Optimierungen vorzunehmen.
- Verwenden Sie die Schaltfläche Andere Hierarchie, um die Ansicht Komponenten auszuwählen.
- Positionieren Sie den Cursor auf der Komponente “BC”, die den höchsten Laufzeitverbrauch aufweist.
- Drücken Sie die rechte Maustaste und wählen Sie im Kontextmenü Erweitern: Pakete, um die Pakete der Komponente “BC” zu erweitern.
- Erweitern Sie den Eintrag des “BASIS”-Pakets. Hier sehen Sie, dass der größte Teil der Laufzeit in den beiden Paketen “SOLE” und “SEU” verbraucht wurde. Wir werden uns beide genauer ansehen.
Analyse der Performance-Messergebnisse in SAP SAT's Profil-Tool
- Positionieren Sie den Cursor auf dem Paket “SOLE” und erweitern Sie mit der rechten Maustaste dessen Trace-Ergebnisse (Erweitern: Trace-Ergebnisse). Hier sehen Sie ganz oben das Trace-Ereignis “Wait for RFC”, welches Ihnen anzeigt, dass unsere Anwendung hier Laufzeit beim Warten auf den Abschluss eines RFC-Aufrufs verbracht hat. Sie können den RFC-Aufruf in der Hit-Liste durch Doppelklick anzeigen lassen. Anschließend können Sie direkt zum Quellcode springen (erneut Doppelklick auf das Trace-Ereignis in der Hit-Liste). Die Fähigkeit, solche detaillierten Einblicke zu gewinnen, ist entscheidend für jeden SAP Inhouse Consultant bei der Diagnose von Systemengpässen.
- Positionieren Sie den Cursor auf dem Paket “SEU” und erweitern Sie mit der rechten Maustaste dessen Programme (Erweitern: Programme). Öffnen Sie den Knoten der Funktionsgruppen und erweitern Sie die Trace-Ergebnisse von “SEWB_CONTROL” (Erweitern: Trace-Ergebnisse). Betrachten Sie die Tabellen und stellen Sie fest, dass der Großteil der Laufzeit auf einen “LOOP AT” entfällt.
- Positionieren Sie den Cursor auf “LOOP AT” und wählen Sie Teilbereich im Hit-List-Tool anzeigen. Die Hit-Liste zeigt Trace-Ereignisse nach Netto-Laufzeit sortiert an. Sie sehen auch die Namen der internen Tabellen im Messergebnis.
- Klicken Sie auf den Top-Performance-Verursacher und werfen Sie einen Blick auf den Quellcode. Sie finden eine verschachtelte Schleife über die Tabelle “l_objectlist”, eine Konstruktion, die in Bezug auf die Laufzeit teuer sein kann.
Wie Sie sehen, konnten wir mit nur wenigen Klicks im Profil-Tool und Hit-List-Tool einige kritische Performance-Hotspots lokalisieren, die einen Großteil der Laufzeit beim Erweitern der Knoten eines Pakets in der ABAP Workbench (SE80) verursachen. Dies unterstreicht die Effizienz von SAP SAT bei der Identifizierung von Engpässen.
Best Practices für eine Performance-Messung
Beachten Sie bei der Messung der Performance Ihrer ABAP-Anwendung Folgendes:
- Verwenden Sie die Aggregation Pro Aufrufposition in einer Messvariante, um Traces für die Performance-Auswertung im Profil-Tool und Hit-List-Tool zu erstellen. Dies liefert detaillierte Daten, die für eine präzise Analyse unerlässlich sind.
- Nutzen Sie das Profil-Tool in Kombination mit dem Hit-List-Tool, um Performance-Engpässe zu finden. Diese Tools ergänzen sich ideal, um sowohl einen Gesamtüberblick als auch eine detaillierte Einsicht zu ermöglichen.
- Beginnen Sie die Analyse im Profil-Tool mit der Ansicht Komponente. Wenn Sie keine Ahnung haben, wo sich der Performance-Verursacher im Quellcode befindet, können Sie in der Trace-Anzeige von der Komponentenansicht zu einzelnen Trace-Ereignissen drill-down, indem Sie den Top-Performance-Verursachern folgen.
- In den meisten Anwendungsfällen interessieren Sie sich für Netto-Laufzeiten. Die Netto-Laufzeit ist die Brutto-Laufzeit der Methode abzüglich aller anderen von dieser Methode aufgerufenen Ereignisse.
- Wenn Ihre Anwendung unverhältnismäßig viel Laufzeit bei einer größeren Datenmenge verbraucht, vergleichen Sie Hit-Listen beider Performance-Messungen, um die Skalierbarkeit zu überprüfen. Sie können auf das Hit-List-Vergleichs-Tool auf der Registerkarte Auswerten des SAP SAT-Einstiegsbildschirms zugreifen, indem Sie zwei kompatible Messungen auswählen und die Schaltfläche Hit-Listen vergleichen drücken.
- Für detailliertere Performance-Ergebnisse verwenden Sie das Times-Tool und das Datenbank-Tool. Diese bieten spezialisierte Ansichten für spezifische Performance-Aspekte.
2. Eine Performance-Messung einschränken
Stellen Sie sich nun die folgende Situation vor: Sie haben einen lang laufenden Prozess und müssen dessen Performance analysieren. Wenn Sie einfach eine Performance-Messung für einen solchen Prozess starten, könnte Ihr Trace-Dateikontingent überschritten werden, bevor Sie den Teil des Prozesses getraced haben, der Sie interessiert. Daher wird im Allgemeinen empfohlen, die Größe von Performance-Messungen zu reduzieren, insbesondere bei Performance-Messungen von lang laufenden Programmen.
Die Strategie zur Größenreduzierung besteht darin, eine Performance-Messung zunächst nur für bestimmte Anweisungen (Funktionen, Formulare, Methoden usw.) durchzuführen, um die Hauptverursacher zu finden. Anschließend können Sie die Messung in einem zweiten Durchlauf auf die Module beschränken, die die Performance beeinträchtigen und die Sie im ersten Durchlauf als Hotspots identifiziert haben. Zusätzlich empfehlen wir, nur den relevanten Teil Ihrer ABAP-Anwendung interaktiv ein- und auszuschalten, sodass Sie nur die kritischen Abschnitte tracen.
Werfen wir einen Blick darauf, wie Sie die Größe einer Performance-Messung mit SAP SAT steuern können. Stellen Sie sich vor, Sie befinden sich im ABAP Editor (Transaktion SE38) und stellen fest, dass die Ausführung Ihres Reports lange dauert. Wir werden die Performance dieses Reports mit SAP SAT analysieren. Für Unternehmen, die global agieren, können ähnliche Performance-Herausforderungen auch bei SAP China Implementierungen auftreten, wo eine effiziente Performance-Analyse ebenso entscheidend ist.
Zuerst müssen Sie die ABAP-Laufzeitanalyse (SAP SAT) starten und eine Messvariante erstellen.
- Starten Sie die ABAP-Laufzeitanalyse (SAP SAT) über System -> Dienstprogramme -> Laufzeitanalyse -> Ausführen oder rufen Sie die Transaktion “/nsat” direkt auf.
- Geben Sie einen Namen des Reports in das Feld Programm ein.
- Wählen Sie Sofort auswerten, um die Analyse direkt nach der Messung zu starten.
- Erstellen Sie Ihre eigene Messvariante:
- Geben Sie einen Namen in das Feld Variante ein und drücken Sie die Schaltfläche Anlegen.
- Wählen Sie auf der Registerkarte Dauer und Typ die Aggregation Pro Aufrufposition.
- Wählen Sie auf der Registerkarte Anweisungen nur alle Verarbeitungsblöcke aus.
- Speichern Sie Ihre Variante.
- Drücken Sie die Schaltfläche Ausführen, um die Messung zu starten.
Messvariante in SAP SAT zur Einschränkung der Performance-Analyse
Nachdem die Messung erstellt wurde, zeigt SAP SAT die Messergebnisse an. Wenn Sie diese im Hit-List-Tool betrachten und nach Netto-Laufzeit sortieren, werden Sie sehen, dass der Aufruf der Methode TEST2 der Klasse LCL_TEST die meiste Laufzeit des Reports verbraucht. Dies ist ein häufiges Szenario, bei dem das F150 SAP System oder ähnliche kundenspezifische Implementierungen von Performance-Problemen betroffen sein können, die dann mit SAT effektiv diagnostiziert werden müssen.
Nun ist es an der Zeit, die Performance-Messung auf den Haupt-Performance-Verursacher zu beschränken. Gehen Sie einfach zurück zum SAP SAT-Einstiegsbildschirm und beschränken Sie die Variante auf die Methode TEST2 der Klasse LCL_TEST, wobei die Variante nun so eingestellt wird, dass alle Anweisungen gemessen werden.
Drücken Sie die Schaltfläche Ändern für Ihre Messvariante:
- Wählen Sie auf der Registerkarte Anweisungen alle Anweisungen aus.
- Wählen Sie auf der Registerkarte Programmkomponenten die Option Einschränkung auf Programmkomponenten.
- Wählen Sie auf der Registerkarte Programmkomponenten die Option Funktionen messen, die von angegebenen Programmteilen aufgerufen werden und geben Sie die Methode TEST2 der lokalen Klasse LCL_TEST Ihres Reports ein.
Konfiguration einer SAP SAT Messvariante zur Fokussierung auf einen Performance-Hotspot
Messen Sie nun die Performance des Reports erneut. Die Hit-Liste zeigt jetzt genau an, wo dieser Report Performance verloren hat.
Ergebnisse der eingeschränkten Performance-Messung in SAP SAT's Hit-List-Tool
Und wenn Sie doppelt auf das oberste Trace-Ereignis klicken, um in den Quellcode zu springen, werden Sie sehen, dass das Problem der Zugriff auf die interne Tabelle ist. Offensichtlich verwendet der Zugriff keine Schlüsselfelder und führt daher bei jeder Ausführung einen sehr “teuren” vollständigen Tabellenscan durch. Übrigens können Sie in NetWeaver 7.0 EhP2 einen Sekundärindex auf ABAP-interne Tabellen erstellen (Sekundärindizes kennen Sie wahrscheinlich von Datenbanktabellen). In diesem Fall würden Sie einen Sekundärindex erstellen, der die Spalten “c” und “d” der internen Tabelle ITAB abdeckt, um die Performance der Methode TEST2 zu optimieren.
Best Practices für eine Performance-Messungsbeschränkung
Beachten Sie bei der Messung der Performance Ihrer ABAP-Anwendung Folgendes:
- Beschränken Sie die Trace-Messung, indem Sie die zu tracenden Anweisungen explizit benennen. Sie können die Anweisungen, die Sie interessieren, auf der Registerkarte Programmkomponenten Ihrer Variante explizit benennen. Dies reduziert die Datenmenge erheblich und ermöglicht eine gezieltere Analyse.
- Tracieren Sie nur relevante Teile Ihrer ABAP-Anwendung. Verwenden Sie, wo immer möglich, die Option Explizites Ein- und Ausschalten der Messung in Ihrer Variante und schalten Sie den Trace dann mit den Befehlen “/ron” und “/roff” ein/aus. Diese Methode ist ideal für die Analyse kritischer Codeabschnitte in langen Prozessen.
- Beschränken Sie die Messung in einem ersten Durchlauf auf Verarbeitungsblöcke. Konzentrieren Sie den Trace in den folgenden Durchläufen auf die Haupt-Performance-Killer. Sie können die ABAP-Anweisungen in der Messung auf der Registerkarte Anweisungen Ihrer Variante einschränken. Dieser iterative Ansatz spart Zeit und Ressourcen und führt Sie direkt zu den entscheidenden Performance-Engpässen.
Fazit
SAP SAT ist zweifellos ein unverzichtbares Werkzeug für jeden ABAP-Entwickler und Performance-Analysten. Als leistungsstarker Nachfolger der SE30 bietet es nicht nur eine modernisierte Benutzeroberfläche, sondern auch erweiterte Funktionen und Analysetools, die eine effiziente Lokalisierung und Behebung von Performanceproblemen ermöglichen. Von der Identifizierung von Hotspots in der ABAP Workbench bis zur gezielten Einschränkung von Messungen bei langlaufenden Prozessen – SAP SAT stellt die notwendigen Mittel bereit, um Ihre Anwendungen optimal zu gestalten.
Die Beachtung der Best Practices, wie die Verwendung von Aggregationen pro Aufrufposition und die gezielte Nutzung des Profil- und Hit-List-Tools, wird Ihre Effizienz bei der Performanceoptimierung erheblich steigern. Zögern Sie nicht, diese leistungsstarken Funktionen in Ihren täglichen Arbeitsabläufen zu integrieren, um die Robustheit und Geschwindigkeit Ihrer SAP-Systeme nachhaltig zu verbessern. Entdecken Sie die Möglichkeiten, die SAP SAT bietet, und bringen Sie Ihre ABAP-Anwendungen auf das nächste Performance-Level!
