Show TOC

HintergrundPerformance-Tipps zur ABAP-Programmierung Dieses Dokument in der Navigationsstruktur finden

 

Im BI-System sowie in SAP-Quellsystemen gibt es an verschiedenen Stellen Möglichkeiten, eigenes ABAP-Coding zu erstellen:

  • in Customer-Exits

  • in BAdIs

  • als Routinen in der Transformation

Es gibt einige Richtlinien, die Sie beachten sollten, damit Ihr Coding die Performance nicht beeinträchtigt:

  • Vermeiden Sie möglichst geschachtelte Schleifen.

  • Vermeiden Sie unnötige Schleifen. Es gibt oft eine Alternative dazu. Sie können z.B. das Löschen von Sätzen aus einer internen Tabelle auch mit einer einzigen Anweisung implementieren, statt einer Schleife über jeden Satz.

    Die Abbildung wird im Begleittext erläutert.

  • Vermeiden Sie unnötige Datenbankzugriffe. Selektieren Sie nur die Sätze von der Datenbank, die Sie wirklich brauchen und verwenden Sie dazu Aggregatsfunktionen und Gruppierungsfunktionen (SUM, MAX, MIN bzw. GROUP BY, ORDER BY, HAVING).

    Die Abbildung wird im Begleittext erläutert.

  • Selektieren Sie Daten nur ein Mal. Legen Sie sie gegebenenfalls. in globalen oder statischen Variablen bzw. Instanzattributen ab.

    Die Abbildung wird im Begleittext erläutert.

  • Vermeiden Sie geschachtelte Selektionen. Verwenden Sie statt dessen die Anweisung FOR ALL ENTRIES, Views oder Subqueries. Vorsicht bei Verwendung von FOR ALL ENTRIES: Stellen Sie sicher, dass die interne Tabelle nicht leer ist.

    Die Abbildung wird im Begleittext erläutert.

  • Verwenden Sie eher ARRAY-Operationen anstelle von Zugriffen per SINGLE. D.h. lesen Sie eine ganze Datenbanktabelle oder einen größeren Teil einer Tabelle in eine interne Tabelle (in der Startroutine einer Transformation) und greifen für jeden zu lesenden Satz auf diese interne Tabelle zu, statt direkt aus der Datenbank zu lesen. Achten Sie jedoch darauf, dass diese internen Tabellen nicht zu groß werden.

    Die Abbildung wird im Begleittext erläutert.

  • Vermeiden Sie full table scans. Verwenden Sie statt dessen sortierte Tabellen und eine binäre Suche oder Hash-Tabellen. Hash-Tabellen eignen sich für Zugriffe auf Einzelsätze und wenn sich Daten in der Tabelle oft ändern. Sortierte Tabellen eignen sich für Zugriffe auf Intervalle und benötigen in der Regel weniger Speicherplatz als Hash-Tabellen.

  • Wenn Sie direkt auf Datenbanktabellen zugreifen, dann sollten Sie den ganzen Schlüssel in der WHERE-Bedingung spezifizieren (um den Primärschlüssel verwenden zu können) oder den Teil des Schlüssels, der in einem der Sekundärindizes der Tabelle verwendet wird. Vermeiden Sie möglichst NOT in der WHERE-Bedingung, da es dabei keine Unterstützung von Tabellenindizes gibt. Beachten Sie, dass nur jener Teil des Index verwendet wird, der lückenlos von vorne spezifiziert wird.

    Bsp.: Index enthält Felder F1, F2, F3, F4. Eine WHERE-Anweisung nach F1, F3 und F4 nutzt nur Feld F1 des Index, entsprechend groß ist die Ergebnismenge, die noch nach F3 und F4 durchsucht werden muss.

Weitere Tipps zur Performance in der ABAP-Programmierung finden Sie über Tipps & Tricks in der Laufzeitanalyse. Dorthin gelangen Sie über   SAP Menü   Werkzeuge   ABAP Workbench   Test   Laufzeitanalyse  .