Geschachtelte interne Tabellen

Dies ist Teil 9 von 10 der Serie Performance-Workshop

Zwei oder mehrere geschachtelte Tabellen können ebenfalls mit einem einfachen Trick schneller abgearbeitet werden. In diesem Beispiel zeigen wir Ihnen wie das geht.

Geschachtelte Tabellen werden normalerweise in der folgenden Weise bearbeitet:

*** Abarbeitung der äußeren Tabelle
LOOP AT itab1 ASSIGNING <itab1>.
*** Abarbeitung der inneren Tabelle
  LOOP AT itab2 ASSIGNING <itab2>
       WHERE feld1 = <itab1>-feld1.

  ENDLOOP.

ENDLOOP.

Besser ist allerdings die folgende Variante. Sie ist etwas umständlicher, jedoch trotz der Sortierung deutlich schneller.

DATA l_index TYPE sytabix.

SORT: itab1, itab2.

*** Abarbeitung der äußeren Tabelle
LOOP AT itab1 ASSIGNING <itab1>.

*** Ermittlung des ersten Eintrags der inneren Tabelle
  READ TABLE itab2 WITH KEY feld1 = <itab1>-feld1.
  CHECK sy-subrc = 0.
  l_index = sy-tabix.

*** Abarbeitung der inneren Tabelle ab ermitteltem Eintrag
  LOOP AT itab2 ASSIGNING <itab2> FROM l_index.

    IF <itab1>-feld1 <> <itab2>-feld1.
      EXIT.
    ELSE.
      …
    ENDIF.

  ENDLOOP. “itab2.

ENDLOOP.   “itab1.

Enno Wulff
Letzte Artikel von Enno Wulff (Alle anzeigen)
Series Navigation<< Bearbeitung von internen TabellenEinige Tipps zum Abschluss >>