ABAP 740 Table Expressions Performance

Die Performance beim Datenzugriff per Table Expression entspricht dem Zugriff per READ Statement. Werden jedoch mehrere Komponenten einer Zeile benötigt und erfolgt der Zugriff auf jede Komponente einzeln, so erhöht sich die Laufzeit etwa um den Faktor [Anzahl angeforderter Komponenten]. Werden drei Komponenten einzeln gelesen, verdreifacht sich die Laufzeit.

Beispiel

Im Beispielreport wird die Laufzeit verschiedener Zugriffsarten verglichen. Pro Datensatz werden zwei Felder geändert. Es werden 10.000 Datensätze verarbeitet. Folgende Zugriffsarten werden verglichen:

  1. Zugriff per READ mit ASSIGNING
  2. Zugriff per Table Expression, jede Komponente einzeln
  3. Zugriff per Table Expression auf ganze Zeile mit ASSIGN an Feldsymbol.
Table Expressions Laufzeitvergleich
Table Expressions Laufzeitvergleich

Da im zweiten Beispiel der Zugriff auf einzelne Komponenten (2 Felder) des Datensatzes erfolgt, beträgt die Laufzeit etwa Faktor 2 im Vergleich zum Zugriff per READ.

Dies erklärt sich damit, dass pro Komponente ein eigener READ Zugriff auf die Tabelle erfolgt.

Der schnellste Zugriff erfolgt mit der Verwendung von Table Expressions und Feldsymbolen (Beispiel 3). Dies kommt daher, da keine Prüfung auf erfolgreiches Auslesen notwendig ist (kein IF SY-SUBRC = 0 und kein IF <fs> IS ASSIGNED notwendig).

Report