Maßnahmen des Applikationstunings
Dispatcher-Statistik
Die Laufzeitanalyse weist die Brutto- und/oder Nettozeit einzelner Aufrufe in Mikrosekunden (μs) aus. Die Bruttozeit ist die Gesamtzeit, die für einen Aufruf benötigt wird. Dazu gehören die Zeiten aller Modularisierungseinheiten und ABAP-Anweisungen dieses Aufrufes. Die Nettozeit ist die Bruttozeit abzüglich der Zeit, die für die aufgerufenen Modularisierungseinheiten (MODULE, PERFORM, CALL FUNCTION, CALL SCREEN, CALL TRANSACTION, CALL DIALOG, SUBMIT) und separat angegebene ABAP-Anweisungen benötigt wird, falls für diese die Protokollierung eingeschaltet wurde. Für »elementare« Anweisungen wie APPEND oder SORT ist die Bruttozeit gleich der Nettozeit. Wenn die Brutto- und Nettozeiten für einen Aufruf voneinander abweichen, enthält der Aufruf andere Aufrufe oder Modularisierungseinheiten. Wenn z. B. bei einer Unterroutine eine Bruttozeit von 100.000 μs und eine Nettozeit von 80.000 μs angezeigt wird, dann bedeutet dies, dass 80.000 μs für die Abarbeitung der Routine selbst gemessen wurden und 20.000 μs weiteren Anweisungen in der Routine zugeordnet worden sind, die getrennt protokolliert wurden. Die Eclipse-basierte Auswertungsoberfläche verwendet synonym die Begriffe Total Time und Own Time.
Wie sollten Sie bei der Analyse komplexerer Programme vorgehen? Wir empfehlen Ihnen, zunächst eine Analyse des gesamten Programms mit Aggregierung pro Aufrufstelle und ohne Analyse von Operationen auf interne Tabellen durchzuführen (Einstellungen der Default-Variante). Das Ziel dieser Analyse ist, die Modularisierungseinheiten mit der höchsten Laufzeit zu ermitteln. Sortieren Sie daher, nachdem Sie die erste Analyse erstellt haben, die Hitliste nach den Nettozeiten, und identifizieren Sie Modularisierungseinheiten oder Anweisungen mit hoher Laufzeit. Wenn Sie aus dieser ersten Analyse nicht bereits Empfehlungen für die Programmoptimierung ableiten können, erstellen Sie in einem zweiten Schritt eine detailliertere Analyse dieser Modularisierungseinheiten, indem Sie eine Variante anlegen, die die Analyse auf diese beschränkt. Aktivieren Sie gleichzeitig den Trace für Operationen auf interne Tabellen, und aktivieren Sie ebenfalls die Aggregierung pro Aufrufstelle.
CPU-Konfiguration
Frischen Sie diesen Monitor mehrfach auf, und beobachten Sie die eventuell aufgrund von Datenbanksperren auftretenden Wartesituationen. Ermitteln Sie mithilfe der Felder Host und PID des Sperrinhabers in derWorkprozess-Übersicht Programme und Benutzer, die die Sperren halten. Im Folgenden finden Sie eine Checkliste zur Eliminierung von exklusiven Datenbanksperren.
Eine Performanceanalyse mit dem Debugger nehmen Sie wie folgt vor: Starten Sie das zu untersuchende Programm in einem zweiten Modus in der Workprozess-Übersicht (Transaktion SM50). Aus der WorkprozessÜbersicht gelangen Sie mit der Funktion Debugging in den Debugger. Indem Sie mehrfach hintereinander in den Debugger springen, können Sie die Coding-Stellen im Programm mit hohem CPU-Bedarf identifizieren. Oft sind dies LOOP ... ENDLOOP-Schleifen über große interne Tabellen. Den aktuellen Hauptspeicherbedarf erhalten Sie (im »klassischen« Debugger) mit der Funktion Springen > Weitere Bilder > Speicherverbrauch. Prüfen Sie, ob ein Programmfehler oder eine Fehlbedienung des Programms vorliegt, sodass übermäßig viel Speicher angefordert wird. Als Richtwert mag Ihnen dienen, dass ein Programm, das im Dialogbetrieb von mehreren Benutzern ausgeführt wird, nicht mehr als 100MB allokieren sollte. Zur Erstellung einer Liste der im Speicher gehaltenen Objekte des Programms navigieren Sie im »klassischen« Debugger ab SAP NetWeaver AS ABAP 6.20 mit Springen > Zustandsanzeigen > Speicherverbrauch. Auf der Registerkarte Speicherverbrauch > Ranglisten finden Sie eine Liste von Objekten und deren Speicherverbrauch. In den Versionen AS ABAP 4.6 und 6.10 gelangen Sie zu einer Speicherverbrauchsliste über den Pfad Springen > System > Systembereiche. Geben Sie im Feld Bereich »ITAB-TOP25« ein. Sie erhalten so eine Liste der 25 größten internen Tabellen. Im »neuen« Debugger blenden Sie zunächst das Speicheranalyse-Werkzeug ein, indem Sie auf die Schaltfläche für ein neues Werkzeug klicken und dann unter den angebotenen Werkzeugen im Ordner Speicherverwaltung die Speicheranalyse auswählen. Auf dem Eingangsbildschirm wird daraufhin angezeigt, wie viel Speicher vom analysierten internen Modus allokiert bzw. verwendet wird. Auf der Registerkarte Speicherobjekte finden Sie eine Liste der größten Speicherobjekte – das können interne Tabellen, Objekte, anonyme Datenobjekte oder Strings sein.
Mit "Shortcut for SAP Systems" werden Aufgaben im Bereich der SAP Basis vereinfacht und fehlende Funktionen des Standards ergänzt.
In jedem NetWeaver-System gibt es einen Datenbankserver, auf dem sich die SAP Datenbank befindet.
Inakzeptabel für die Bearbeitung mittlerer und großer Datenmengen sind quadratische Abhängigkeiten (t = O(n × n)) und alles, was darüber hinausgeht.