ebook img

Besseres ABAP PDF

36 Pages·2015·11.59 MB·German
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Besseres ABAP

Wissen aus erster Hand. Leseprobe Für die Performanceanalyse von ABAP-Programmen gibt es eine Vielzahl an Werkzeugen. In dieser Leseprobe stellen wir Ihnen die- se Werkzeuge vor und zeigen Ihnen, wie Sie sie effizient einsetzen können. Kapitel 8: »Werkzeuge für die Performanceanalyse« Inhaltsverzeichnis Index Die Autoren Leseprobe weiterempfehlen Robert Arlitt, Thorsten Marcus Dunz, Hermann Gahm, Damir Majer, Eric Westenberger Besseres ABAP – Schnell, sicher, robust 497 Seiten, gebunden, Februar 2015 69,90 Euro, ISBN 978-3-8362-2939-5 www.sap-press.de/3641 Kapitel 8 Für die Performanceanalyse von ABAP-Programmen gibt es eine Vielzahl an Werkzeugen. In diesem Kapitel stellen wir Ihnen die Werkzeuge vor und zeigen Ihnen, wie Sie diese effi- zient einsetzen können. Dazu gehen wir auf die wichtigsten Messergebnisse ein und erklären diese im Detail. 8 Werkzeuge für die Performanceanalyse Das SAP-System bietet statische und dynamische Werkzeuge zur Per- formanceanalyse von ABAP-Programmen, wie z.B. den ABAB Code Inspector, Performance Trace oder Single Activity Trace. Zusätzlich gibt es ein Werkzeug, das statische mit dynamischen Prüfungen ver- knüpft, die SQL Performance Tuning Worklist. Wir stellen diese Werkzeuge in den folgenden Abschnitten vor: (cid:2) Abschnitt 8.1, »Statische Prüfungen« (cid:2) Abschnitt 8.2, »Dynamische Prüfungen und Traces« (cid:2) Abschnitt 8.3, »Kombinierte Auswertung statischer und dynamischer Prüfungen (SWLT)« In jedem Abschnitt zeigen wir Ihnen die Bedienung der Werkzeuge und gehen auf die Auswertung im Detail ein. 8.1 Statische Prüfungen Bei statischen Prüfungen wird das Programm analysiert, ohne dass es ausgeführt werden muss. Sie benötigen also zur Durchführung der Prüfung keine (produktiven) Daten. Daher können Sie mit statischen Performanceprüfungen beispielsweise schon während des Entwick- lungsprozesses potenzielle Performanceprobleme erkennen und ver- meiden. Andererseits wird bei solchen Analysen nicht festgestellt, ob das Coding überhaupt ausgeführt wird. Im Folgenden beschrei- ben wir die Performanceprüfungen des Code Inspectors. 259 8 Werkzeuge für die Performanceanalyse Statische Prüfungen 8.1 8.1.1 Code Inspector (SCI) (cid:2) Nach zu transformierenden SELECT .. FOR ALL ENTRIES- Klauseln suchen In Kapitel 5, »Werkzeuge für die Qualitätssicherung«, haben wir Findet SELECT … FOR ALL ENTRIES-Anweisungen, die alternativ Ihnen das Konzept und die Bedienung des Code Inspectors als Werk- durch einen JOIN ausgeführt werden können. zeug zur Qualitätssicherung beschrieben. Darüber hinaus enthält ins- besondere der Code Inspector eine Reihe von statischen Performance- (cid:2) Nach SELECT-Anweisung mit DELETE-Anweisung suchen prüfungen, mit deren Hilfe schon während der Entwicklungsphase Erkennt SELECT-Anweisungen, deren Ergebnismenge durch ein viele typische Performanceprobleme (siehe Kapitel 7, »Typische Per- anschließendes DELETE FROM <itab> gelöscht wird. formanceprobleme und Lösungen«) erkannt werden können. Die (cid:2) DB-Operationen in Schleifen über Modularisierungs- meisten Prüfungen sind konfigurierbar und können flexibel angepasst einheiten suchen werden. Zu jeder Prüfung erreichen Sie über den Button Info eine Erkennt Tabellenzugriffe in Schleifen, auch über Modularisie- ausführliche Beschreibung und Tipps zur Vermeidung des Problems. rungseinheiten hinweg. Unter anderem kann die Schachtelungs- Performance- In der Transaktion SCI können Sie eine Prüfvariante für Performance- tiefe definiert werden. prüfungen im prüfungen definieren und die folgenden Prüfungen aktivieren. (cid:2) Ändernde Datenbankzugriffe in Schleifen CodeInspector Findet INSERT-, UPDATE-, MODIFY- oder DELETE-Anweisungen in Schleifen. Analyse der WHERE-Bedingung für SELECT (cid:2) Geschachtelte Schleifen Zur Auswahl stehen die folgenden Einzelprüfungen: Meldet, wenn zwei Schleifen ineinander geschachtelt sind, z.B. (cid:2) keine WHERE-Bedingung LOOP…ENDLOOP, SELECT…ENDSELECT usw. (cid:2) kein Indexfeld in WHERE-Bedingung (cid:2) EXIT oder keine Anweisung in SELECT…ENDSELECT- (cid:2) kein 1. Indexfeld in WHERE-Bedingung Schleife (cid:2) CLIENT SPECIFIED ohne Mandant SELECT…ENDSELECT-Schleifen, die leer sind oder nur die Anwei- sung EXIT enthalten (z.B. zur Existenzprüfung eines Datensatzes), werden hier erkannt. Wahlweise können Einzelsatz- oder gepuf- Analyse der WHERE-Bedingung für UPDATE und DELETE ferte Zugriffe weggelassen werden. Es stehen dieselben Einzelprüfungen wie beim SELECT zur Verfü- (cid:2) SELECT-Anweisungen mit anschließendem CHECK gung. Meldet CHECK-Anweisungen, die direkt auf ein SELECT folgen und (cid:2) SELECT-Anweisungen, die am Tabellenpuffer vorbei lesen die Ergebnismenge des SELECT einschränken. Bestimmte Zugriffe auf gepufferte Tabellen gehen am Puffer vor- (cid:2) Inperformante Operationen auf internen Tabellen bei direkt auf die Tabelle und sollten aus Performancegründen ver- Erkennt sequenzielle Suchoperationen auf internen Tabellen, z.B. mieden werden. Diese haben wir in Abschnitt 7.1.3, »Identische bei (unvollständigem) Schlüsselzugriff. Dabei wird zwischen den Datenbankzugriffe«, beschrieben. verschiedenen Tabellenarten unterschieden, die wir in Abschnitt (cid:2) Problematische SELECT *-Anweisungen suchen 7.2, »Zugriffe auf interne Tabellen«, beschrieben haben. Die Onli- nehilfe enthält einige Verbesserungsvorschläge zur Optimierung SELECT *-Anweisungen werden z.B. erkannt, wenn nur wenige der Zugriffe. Felder einer breiten Tabelle tatsächlich genutzt werden oder die Größenkategorie einer Tabelle einen Mindestwert überschreitet. (cid:2) SORT-Anweisung in Schleife Die Schwellenwerte sind einstellbar. Zugriffe auf gepufferte Tabel- Die SORT-Anweisung sollte möglichst nicht innerhalb einer len können ausgeschlossen werden. 260 261 8 Werkzeuge für die Performanceanalyse Dynamische Prüfungen und Traces 8.2 Schleife ausgeführt werden und wird mit dieser Prüfung gemel- Wahlweise können auch andere Methoden erkannt werden. det. Details dazu finden Sie ebenfalls in der Hilfefunktion der Prü- (cid:2) Kopieren der aktuellen Tabellenzeile bei LOOP AT … fung. Findet LOOP AT <itab> oder …INTO <wa>-Anweisungen. Aktuelle Um die typischen Performanceprobleme frühzeitig zu erkennen, Tabellenzeilen sollten nicht in einen Arbeitsbereich oder die Kopf- sollten Sie den Code Inspector bereits während der Entwicklungs- zeile kopiert werden. Stattdessen sollten Feldsymbole oder Refe- phase einsetzen. Dazu finden Sie im System einige vorkonfigurierte renzvariablen genutzt werden, um Kopierkosten zu vermeiden. globale Prüfvarianten (siehe Abschnitt 5.1.1, »Einsatz des Code (cid:2) Inperformante Parameterübergaben Inspectors«). Dazu gehören z.B. die Prüfvarianten PERFORMANCE_ Parameterübergaben z.B. an Methoden oder Funktionsbausteine CHECKLIST_XL oder PERFORMANCE_DB. Diese können Sie in eigene können als Referenz- oder Wertübergabe deklariert werden, lokale Prüfvarianten kopieren und Ihren Bedürfnissen anpassen. wobei Wertübergaben deutlich teurer sind und hier erkannt wer- den. Es kann nach dem Typ der übergebenen Werte unterschieden werden, z.B. geschachtelten internen Tabellen, Strings oder lan- 8.2 Dynamische Prüfungen und Traces gen Feldern. (cid:2) Kopieren großer Datenobjekte Im Gegensatz zu statischen Prüfungen muss das Programm bei dyna- mischen Prüfungen und Traces ausgeführt werden. Die Messungen Findet Zuweisungen mit = oder MOVE, bei denen große Datenmen- sollten in Ihrer Produktiv- oder vorgelagerten Qualitätssicherungs- gen kopiert werden müssen, wie z.B. bei geschachtelten internen umgebung mit realistischen Datenmengen ausgeführt werden, um Tabellen oder breiten Strukturen (>1000 Byte). aussagekräftige Ergebnisse zu erhalten. In diesem Abschnitt stellen (cid:2) Prüfung der Tabelleneigenschaften wir die folgenden Werkzeuge für die Systemkomponenten Daten- Es werden die technischen Einstellungen von Datenbanktabellen bank und ABAP-Schicht vor: und Indexen bezüglich der Performance untersucht. Gemeldet werden Einstellungen, die die Performance verschlechtern kön- (cid:2) Laufzeitstatistiken (Transaktion STAD) nen. (cid:2) Performance Trace (Transaktion ST05) (cid:2) Instanzerzeugung von BAdIs (cid:2) ABAP Trace (Transaktion SAT) Es wird geprüft, ob die neue (GET BADI…) oder alte (CALL METHOD (cid:2) Single Activity Trace (Transaktion ST12) cl_exithandler=>get_instance) BAdI-Implementierung verwen- (cid:2) SQL Monitor (Transaktion SQLM) det wird. Wahlweise kann bei Verwendung der alten Implemen- tierung geprüft werden, ob die optionalen Parameter genutzt wer- (cid:2) Runtime Check Monitor (Transaktion SRTCM) den, die ebenfalls die Performance der Instanziierung verbessern (siehe SAP-Hinweis 537844). 8.2.1 Laufzeitstatistiken (STAD) (cid:2) Aufrufe von Interface-Methoden innerhalb von Schleifen Die Transaktion STAD beinhaltet die Laufzeitstatistiken für alle finden Anfragen an das SAP-System. Typische Anfragen sind z.B.: Erkennt Aufrufe bestimmter Methoden innerhalb von Schleifen. In der Voreinstellung werden massenfähige Methoden aus dem (cid:2) Dialogschritte (z.B. ein Klick auf einen Button im SAP GUI) BOPF-Framework (siehe Abschnitt 2.2.1, »Architektur-Blau- (cid:2) HTTP-Anfrage (z.B. ein Klick auf einen Button in einer pause«) erkannt, die in Schleifen pro Einzelsatz gerufen werden. Webapplikation) 262 263 8 Werkzeuge für die Performanceanalyse Dynamische Prüfungen und Traces 8.2 (cid:2) Hintergrundjob (ein ABAP-Programm, das im Hintergrund ausgeführt wurde) (cid:2) RFC-Aufruf (ein Funktionsbaustein, der remote ausgeführt wird) Im Allgemeinen sprechen wir von einzelnen Statistiksätzen, die die Laufzeitstatistiken bilden. Statistiksätze enthalten wichtige techni- sche Informationen, die während der Laufzeit des Programms gesammelt wurden. Dazu gehören unter anderem die verbrauchte CPU-Zeit oder Datenbankzeit, aber auch die Anzahl der verarbeite- ten Datensätze. Die Statistiksätze werden vom jeweiligen Applika- tionsserver, auf dem die Anfrage ausgeführt wurde, gesammelt und in das lokale Dateisystem geschrieben. Dort stehen die Dateien stan- dardmäßig für 48 Stunden zur Verfügung, bevor sie überschrieben werden (diese Einstellung kann geändert werden, siehe Kasten »Tipps zur Konfiguration der Transaktion STAD«, am Ende des Abschnitts). Sehen wir uns nun an, wie Sie die Statistiksätze selektieren und aus- werten können. Abgerundet wird der Abschnitt durch die wichtigs- ten Einstellmöglichkeiten und Parameter für diese Transaktion. Selektion der Statistiksätze Abbildung 8.1 Selektionsmaske in STAD Nach dem Ende der Anfrage werden die während der Laufzeit gesammelten und aggregierten Daten zunächst in einen Puffer und Darüber hinaus können Sie noch weitere Filter wie den Benutzer- dann in das Dateisystem des Applikationsservers geschrieben. In der namen, das Programm oder die Transaktion, den Tasktyp (DIALOG, Transaktion STAD können Sie diese Daten dann selektieren (siehe RFC, BACKGROUND usw.) und verschiedene Schwellenwerte, z.B. Min- Abbildung 8.1). destantwortzeit oder Mindestdatenbankzeit, angeben. Im Feld für das Zeitintervall wählen Sie die Zeit so, dass das Ende der Anfrage im Selektionszeitraum liegt. Dies ist z.B. bei lange laufen- Auswertung der Statistiksätze den Anfragen wie Hintergrundprozessen von Bedeutung. Beachten Sie auch, dass Sie den Zeitraum nicht zu groß wählen, da sich dies Nachdem Sie die Selektion ausgeführt haben, erhalten Sie eine Liste negativ auf die Geschwindigkeit der Abfrage und den Speicherver- aller Statistiksätze, die im selektierten Zeitraum angefallen sind brauch im Applikationsserver auswirkt. Je mehr Anfragen im SAP- (Abbildung 8.2). In dieser Übersicht werden schon wichtige KPIs wie System angefallen sind, desto kürzer sollte der ausgewählte Zeitraum Response time, CPU Time und DB Request time angezeigt. Über den sein. In stark belasteten Systemen sollten hier nur wenige Minuten Button Sel. fields können Sie auch weitere Detailinformationen in eingetragen werden oder die Selektion auf einen Applikationsserver dieser Liste einblenden. (über den Button Server selection) beschränkt werden. 264 265 8 Werkzeuge für die Performanceanalyse Dynamische Prüfungen und Traces 8.2 Zeit Bedeutung Database request time Zeit, die für Datenbankzugriffe (Open SQL und natives SQL) verbraucht wurde Enqueue time Zeit für Sperranfragen an den SAP Enqueue Service Tabelle 8.1 Zeitkomponenten (Forts.) Abbildung 8.2 Liste aller Statistiksätze Komponenten der Beim Doppelklick auf einen Eintrag wird der Statistiksatz im Detail Antwortzeit angezeigt. Im oberen Teil sehen Sie einen Überblick über die Zeitver- teilung (siehe Abbildung 8.3). Die wichtigsten Komponenten der Antwortzeit sind in Tabelle 8.1 aufgeführt. Weitere Details finden Sie auch in SAP-Hinweis 8963. Zeit Bedeutung Wait for work process Zeit, auf die auf einen freien Workprozess gewartet wurde (in der Dispatcherqueue) Processing time Berechnet aus Response time – alle anderen hier genannten Zeiten. Beinhaltet in der Regel Zeit für ABAP Processing und CPU-Verbrauch, aber auch Wartezeiten (z.B. RFC, Verbu- chung, WAIT, …), wenn der Workprozess nicht herausgerollt ist. RFC + CPIC time Zeit für die RFC-Kommunikation Load und Generating Zeit für das Laden und Generieren von time Programmen Roll (in+wait) time Zeiten, in denen der Workprozess heraus- gerollt war und die Zeit für das rein- und raus- Abbildung 8.3 Statistiksatz – Zeitverteilung und Datenbankdetails rollen des Benutzerkontexts. Tabelle 8.1 Zeitkomponenten 266 267 8 Werkzeuge für die Performanceanalyse Dynamische Prüfungen und Traces 8.2 Details zur Im unteren Teil der Abbildung 8.3 werden Details zur Datenbankzeit 8.2.2 Performance Trace (ST05) Datenbank aufgeführt, z.B. ob die Zeit mit lesenden oder schreibenden Zugrif- Der Performance Trace (Transaktion ST05) ist ein sehr mächtiges fen verbraucht wurde und wie viele Datensätze jeweils verarbeitet Werkzeug und neben dem ABAP Trace eines der wichtigsten Werk- wurden. zeuge zur Performanceanalyse von ABAP-Programmen. Falls die Transaktion STAD entsprechend konfiguriert ist (siehe Kas- In der Transaktion ST05 können Sie die folgenden Traces erstellen: ten), finden Sie hier auch Details zu Datenbankprozeduren und Datenbanktabellen. Dazu werden die Anzahl der verarbeiteten (cid:2) SQL Trace Datensätze und der Zeitverbrauch für Tabellen (siehe Abbildung 8.4) (cid:2) Puffer-Trace dargestellt bzw. die Anzahl der Aufrufe und der Zeitverbrauch für (cid:2) Enqueue Trace Datenbankprozeduren (hier nicht dargestellt). (cid:2) RFC Trace (cid:2) HTTP Trace Von diesen ist der SQL Trace für die Performanceanalyse der wich- tigste. Wir stellen Ihnen anhand des SQL Traces die Aufzeichnung eines Traces vor, die für die anderen Tracetypen in derselben Art und Weise durchgeführt wird. Die Auswertung des SQL Traces besprechen wir im Detail, während wir für die anderen Traces einen Abbildung 8.4 Statistiksatz – Details zu Datenbanktabellen Überblick der wichtigsten Inhalte geben. Konfiguration Schließlich möchten wir Ihnen noch zeigen, wie Sie die Transaktion STAD konfigurieren können, um die hier vorgestellten Details zu sehen. Aufzeichnung eines SQL Traces Ein SQL Trace wird mit den Drucktasten Trace einschalten bzw. Tipps zur Konfiguration der Transaktion STAD Trace mit Filter einschalten aktiviert. Im ersten Fall gilt die Auf- Das anfangs erwähnte Zeitfenster von 48 Stunden für die Persistenz der zeichnung für den aktuellen Benutzer und den Server, auf dem die Daten kann über den SAP-Profilparameter stat/max_files auf bis zu 99 Transaktion ST05 aufgerufen wurde. Stunden verlängert werden Die hier vorgestellten Detaildaten auf Tabellen- und Datenbank-Proze- Bei der Aufzeichnung mit Filter stehen Ihnen verschiedene Filter, durebene werden nur angezeigt, wenn die beiden SAP-Profilparameter wie z.B. Benutzername, Prozess-Nummer (aus der Workprozess- stat/tabrec und stat/dbprocrec auf Werte gesetzt werden, die größer als übersicht SM50) oder Tabellennamen, zur Verfügung (siehe Abbil- null sind. Diese Parameter können Sie in der Transaktion ST03 über den dung 8.5). folgenden Pfad dynamisch für einen bestimmten Zeitraum ändern. Dabei gehen Sie in der Transaktion ST03 über folgenden Pfad: Kollektor & Perf. In beiden Fällen können Sie unter Stack-Trace wählen, ob für die Datenbank (cid:2) Statistiksätze und -datei (cid:2) Online Parameter (cid:2) Dialog- SQL-Anweisungen die ABAP-Aufrufhierarchie mit aufgezeichnet schrittstatistik. werden soll oder nicht. Im dann angezeigten Dialog können Sie die Parameter für den gewünsch- ten Analysezeitraum ändern. Der Parameter stat/rfcrec für die RFC-Sub- Bei der Aufzeichnung sollten Sie Folgendes beachten: Hinweise zur sätze ist standardmäßig bereits auf »5« gesetzt. Aufzeichnung (cid:2) Es kann immer nur ein SQL Trace pro Applikationsserver aktiviert werden, das heißt, es ist nicht möglich, mehrere Benutzer oder Prozesse parallel auf einem Server zu tracen. 268 269 8 Werkzeuge für die Performanceanalyse Dynamische Prüfungen und Traces 8.2 (cid:2) Der Trace wird in Dateien auf dem jeweiligen lokalen Applika- Für die anderen Tracearten, wie z.B. den RFC Trace, erfolgt die Auf- tionsserver geschrieben, daher muss die Auswertung auf demsel- zeichnung analog. ben Applikationsserver erfolgen wie die Aufzeichnung. Praxistipp: Tracedaten sichern (cid:2) Es ist zwar möglich, den SQL Trace auf einem anderen Applika- tionsserver als dem lokalen Server zu aktivieren (siehe Filteroptio- Sie können die aufgezeichneten Daten in der Transaktion ST05 sichern, um sie vor dem Überschreiben zu schützen. Gehen Sie dabei wie folgt vor: nen in Abbildung 8.5), für die Auswertung müssen Sie sich dann aber auf dem Server anmelden, auf dem das Programm mit der Auf dem Selektionsbildschirm (siehe Abbildung 8.6) wählen Sie das Sym- bol Trace-Sätze in DB schreiben. Alle Daten, die den auf diesem Bild- Aufzeichnung ausgeführt wurde. schirm eingegebenen Selektionskriterien entsprechen, werden dann in (cid:2) Der Trace wird im sogenannten Round-Robin-Verfahren in die der Datenbank gespeichert. Über die Drucktaste Trace-Verzeichnis an- Tracedateien geschrieben. Wenn auch die letzte Datei beschrieben zeigen (siehe Abbildung 8.5) können Sie dann auf die abgespeicherten wurde, wird die erste Datei wieder überschrieben, das heißt, ein Daten zugreifen und diese anzeigen. lange laufender Trace kann sich so selbst überschreiben und nur das Ende der Aufzeichnung beinhalten. Achten Sie daher darauf, Auswertung des SQL Traces den Trace nicht zu lange aufzuzeichnen, um ein Überschreiben der Daten zu verhindern. Für länger laufende Programme bietet sich Um einen SQL Trace anzuzeigen, rufen Sie die Funktion Trace anzei- an, eine erste Analyse mit dem SQL Monitor (siehe Abschnitt gen auf. Im folgenden Dialog (siehe Abbildung 8.6) können Sie ver- 8.2.5, »SQL Monitor (SQLM)«) durchzuführen. Die Ergebnisse des schiedene Filter auswählen und die Anzeige beeinflussen. Im Bereich SQL Monitors (z.B. Namen von Tabellen) können Sie anschlie- Trace-Typen wählen Sie die Art des Traces, der angezeigt werden ßend als Filter für eine Aufzeichnung mit der Transaktion ST05 soll, in unserem Fall also den SQL-Trace. Im Bereich Trace-Zeit- verwenden. raum wird der Start- und Endzeitpunkt der Auswertung angegeben. Im Bereich Trace-Filter können Sie noch zusätzliche Filter wie den Benutzernamen, Tabellennamen usw. für die Anzeige eingeben. Abbildung 8.6 Transaktion ST05 – Anzeigen eines SQL Traces Über die Symbole am oberen Bildschirmrand können Sie folgende Abbildung 8.5 Transaktion ST05 – Aufzeichnung eines SQL Traces Sichten für den SQL Trace anzeigen: 270 271 8 Werkzeuge für die Performanceanalyse Dynamische Prüfungen und Traces 8.2 (cid:2) Mit dem Icon Ausführen gelangen Sie auf die Liste der soge- tern in der WHERE-Bedingung) ausgeführt wurden. Die Spalte Iden- nannten Hauptsätze. Dort sehen Sie pro SQL-Anweisung eine tisch gibt an, wie viele SQL-Anweisungen prozentual identisch Zeile, die alle Details zur SQL-Anweisung zusammenfasst. waren. In diesen Spalten erkennen Sie das typische Problem der (cid:2) Mit dem Icon Trace-Einzelsätze anzeigen erhalten Sie für alle identischen Ausführungen (siehe Abschnitt 7.1.3, »Identische Daten- bankzugriffe«) sehr gut. SQL-Anweisungen die Details wie OPEN oder FETCH. (cid:2) Mit dem Icon Struktur-identische Trace-Sätze anzeigen erhalten Sie eine aggregierte Liste, die alle ähnlichen SQL-Anwei- sungen zusammenfasst. Strukturidentisch meint hier, dass SQL- Anweisungen, die die gleichen WHERE-Bedingungen haben, in einer Zeile in dieser Sicht zusammengefasst und aggregiert werden. Diese Anweisungen können von unterschiedlichen Stellen im ABAP-Programm kommen. (cid:2) Mit dem Icon Trace-Übersicht erhalten Sie eine Übersicht über alle Anweisungen im SQL Trace. Dort sehen Sie eine Zusam- Abbildung 8.7 Transaktion ST05 – strukturidentische SQL-Anweisungen menfassung und Auswertung der SQL-Anweisungen nach unter- schiedlichen Kategorien. In der Spalte Dauer wird die Zeit angezeigt, die für alle Ausführun- Im Folgenden gehen wir auf die zwei wichtigsten Sichten ein: gen der SQL-Anweisung im Trace benötigt wurde. Standardmäßig ist (cid:2) strukturidentische SQL-Anweisungen die Liste nach dieser Spalte sortiert. (cid:2) Liste der Hauptsätze In den Spalten Anzahl Sätze und Sätze/Ausf sehen Sie, wie viele Datensätze von allen Ausführungen der SQL-Anweisung in Summe Strukturidentische Sie sollten die Analyse möglichst immer mit der Sicht über die struk- bzw. einer Ausführung im Durchschnitt verarbeitet wurden. Anhand SQL-Anweisungen turidentischen SQL-Anweisungen beginnen. In dieser Sicht werden der Werte in diesen Spalten lässt sich das typische Problem der Ver- die teuersten SQL-Anweisungen mit den wichtigsten Details und arbeitung großer Datenmengen (siehe Abschnitt 7.1.1, »Verarbei- Kennzahlen dargestellt. Die Liste ist so sortiert, dass die teuersten tung großer Datenmengen«) gut erkennen. SQL-Anweisungen oben stehen, das heißt die SQL-Anweisungen, die (über alle Ausführungen summiert) am meisten Zeit verbraucht Die Spalten Dauer/Ausf, Minimale Dauer/Satz und Maximale haben. Im Folgenden beschreiben wir die wichtigsten Werte, die Sie Dauer/Satz zeigen an, wie lange die SQL-Anweisung pro Ausfüh- in dieser Ansicht auswerten können. rung und Datensatz (minimal und maximal) gebraucht hat. Anhand dieser Werte können Sie das typische Problem ineffizienter Zugriffs- Wichtige Spalten In der Spalte Ausführung sehen Sie die Summe der Ausführungen pfade (siehe Abschnitt 7.1.4) erkennen. für die SQL-Anweisung. An dieser Spalte lässt sich das typische Pro- blem vieler Ausführungen (siehe Abschnitt 7.1.2, »Viele Ausführun- Die Spalten Puffer-Typ und Objektname zeigen, auf welche Objekte gen«) gut erkennen. (Tabellen oder Views) die SQL-Anweisung zugegriffen hat und ob diese gepuffert sind. Gegebenenfalls können Sie damit Tabellen In den Spalten Redundanz und Identisch sehen Sie, ob bzw. wie identifizieren, auf die unnötigerweise zugegriffen wurde, da nicht viele SQL-Anweisungen identisch ausgeführt wurden. Die Spalte relevant für den Prozessschritt. Bei aktivierter Tabellenpufferung las- Redundanz gibt eine absolute Anzahl wieder und weist aus, wie sen sich auch Tabellen identifizieren, die am Tabellenpuffer vorbei viele SQL-Anweisungen exakt gleich (das heißt mit gleichen Parame- 272 273 8 Werkzeuge für die Performanceanalyse Dynamische Prüfungen und Traces 8.2 gelesen wurden. Wenn im SQL Trace eine gepufferte Tabelle auf- Doppelklick auf … Beschreibung taucht, bedeutet das, dass direkt auf die Datenbank zugegriffen Spalte Ausführung Springt auf die Liste der Hauptsätze, zeigt wurde und nicht aus dem Puffer gelesen werden konnte. Mögliche dort aber nur die ausgewählte SQL- Gründe dafür haben wir in Abschnitt 7.1.1 beschrieben. Anweisung an. In der Spalte Anweisung sehen Sie den Text der SQL-Anweisung, bei Spalten Redundanz/Identisch Springt auf die Liste der wertgleichen SQL-Anweisungen (identical SELECTS), dem die Feldliste und die FROM-Klausel ausgeblendet sind. zeigt dort aber nur die ausgewählte Details und Funk- Für die SQL-Anweisungen stehen Ihnen in der Symbolleiste eine SQL-Anweisung an. tionen zu SQL- Reihe von nützlichen Funktionen zur Verfügung (Tabelle 8.2). Spalten Objektname/ Springt auf die Informationen zum DDIC. Anweisungen Puffer-Typ/Tab-Typ Icon in Abbildung 8.7 Beschreibung Spalte Anweisung Zeigt die SQL-Anweisung in voller Länge Blendet die Standardfunktionen (z.B. Filtern, an. Sortieren, …) für die Liste (Advanced List Viewer – ALV) ein. Tabelle 8.3 Querverweise aus einzelnen Spalten des SQL Traces Zeigt die ganze SQL-Anweisung mit Platzhal- Die Liste der Hauptsätze ist nach dem Zeitstempel sortiert. Dort Trace-Hauptsätze tern (Bind-Variablen) oder in die WHERE- Bedingung eingesetzten Werten an. Hierfür sehen Sie pro ausgeführter SQL-Anweisung eine Zeile im Ergebnis. wird die erste SQL-Anweisung der zugrunde In dieser Ansicht finden Sie wichtige Informationen, wie z.B.: liegenden SQL-Anweisungen verwendet. (cid:2) Zeitstempel: Zeitpunkt der Ausführung Zeigt die Data-Dictionary-Informationen (DDIC) zur Tabelle oder View an. (cid:2) Dauer: Laufzeit der SQL-Anweisung Zeigt den Ausführungsplan für die SQL- (cid:2) Sätze: Ergebnismenge der SQL-Anweisung Anweisung an. (cid:2) Programm-Name: Name des Programms, in dem die SQL-Anwei- Zeigt die Aufrufstelle der SQL-Anweisung im sung ausgeführt wurde ABAP-Programm an. (cid:2) Objektname: Tabelle oder View Verzweigt auf andere Sichten, z.B. auf die Liste der Hauptsätze bzw. der wertgleichen In der Symbolleiste stehen Ihnen, neben den in Tabelle 8.2 angezeig- SQL-Anweisungen (identical SELECTS). ten Funktionen noch zusätzlich die in Tabelle 8.4 beschriebenen Ändert die Anzeige von absoluten Werten auf wichtigen Funktionen zur Verfügung. relative Werte (%). Icons in Abbildung 8.7 Beschreibung Tabelle 8.2 Funktionen in der Symbolleiste des SQL Traces Zeigt die Aufrufhierarchie der SQL-Anweisung, falls die Option bei der Aufzeichnung mit akti- Diese Symbolleiste mit Funktionen zu einer SQL-Anweisung finden viert wurde (siehe Abbildung 8.5). Sie auf anderen Listen in der gleichen oder sehr ähnlichen Form wie- Verzweigt auf die Liste der Einzelsätze der der. Weiterhin hat die Liste noch einige nützliche Querverweise, die SQL-Anweisungen. Sie bequem per Doppelklick aktivieren (Tabelle 8.3). Verzweigt auf weitere Sichten und Listen. Tabelle 8.4 Weitere Funktionen in der Symbolleiste des SQL Traces 274 275

Description:
Für die Performanceanalyse von ABAP-Programmen gibt es eine. Vielzahl www.sap-press.de/3641 knüpft, die SQL Performance Tuning Worklist.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.