This is a test message to test the length of the message box.
Login
Modernes ABAP Interne Tabelle Performance
Erstellt von Software-Heroes

ABAP - Interne Tabellen (Performance)

Der zweite Teil zum Thema interne Tabellen, ihre Verarbeitung und Performance beim Zugriff auf die Daten. Heute mit dem Fokus auf die Performance beim Lesen der Daten.

Werbung

Was du beim Zugriff über die neuen Methoden beachten solltest, ist vor allem das Thema Performance. Wenn du viele Daten und oft Lesen musst aus nternen Tabellen, sollten diese auch dafür vorbereitet werden.

Ein Lesen über den Index, wenn möglich, ist auf jeden Fall immer schnell. Doch nicht in jedem Fall kann und wird mit diesem Schlüssel gearbeitet. In den folgenden Punkten erklären wir dir, wie es sich mit dem Zugriff auf die Daten verhält.

 

Lesen per Index

Das Lesen über den Index ist immer schnell, hier hält SAP einen eigenen Schlüssel vor, der den Zugriff auf spezielle Zeilen beschleunigt. Hier muss nichts an der Performance angepasst oder verbessert werden, dieser Schlüssel ist immer schnell.


" Index Zugriff
DATA(ls_t001) = lt_t001[ 1 ].

 

Lesen per Schlüssel

Etwas kritischer sieht es schon beim Lesen über einen Schlüssel aus. Hier sollte beachtet werden, ob die Tabelle einen Schlüssel hat und entsprechend sortiert ist.

Performanceprobleme machen hier in den meisten Fällen die Standard Tabellen, da diese entweder einen "Schrott"- oder "Empty"-Schlüssel haben. Hier lässt sich nur sinnvoll lesen, wenn die Datenmenge kleiner 100 Datensätze ist, da alles andere nur unerträglich langsam ist.

Von daher haben wir für diesen Fall eine Liste für dich zusammengestellt, um dir die gängisten schnellen und langsamen Zugriffe aufzuzeigen.

 

Langsame Zugriffe
  • Standard Tabelle mit Default/Empty Key
  • Tabelle mit Secondary Key ohne Angabe beim Zugriff

 

Schnelle Zugriffe
  • Sortierte Tabelle
  • Hash Tabelle
  • Secondary Key mit Angabe beim Zugriff
  • Read Table mit Binary Search (Daten müssen sortiert sein)

 

Zur besseren Darstellung und Visualisierung der Zugriffe, wollen wir dir im dritten Teil einen einfachen Report vorstellen, mit dem du die Zugriffe und die Zugriffszeiten prüfen/testen kannst.

 

Lesen von Feldern

Arbeitest du mit einem freien Schlüsselzugriff und möchtest nur Felder aus der Tabelle lesen, solltest du dies aber auch nur mit einem Feld so machen. Schnell wirst du verleitet diesen Zugriff immer und immer wieder zu verwenden. Du solltest aber daran denken, dass jeder dieser Zugriffe auf ein erneutes Lesen der Internen Tabelle auslöst und damit genau so zu Performance-Problemen führen kann.


" Schlechtes Beispiel
ls_data-waers = lt_t001[ bukrs = 'ABCD' ]-waers.
ls_data-btext = lt_t001[ bukrs = 'ABCD' ]-butxt.
ls_data-taxno = lt_t001[ bukrs = 'ABCD' ]-stceg.

" Besseres Beispiel
DATA(ls_t001) = lt_t001[ bukrs = 'ABCD' ].
ls_data-waers = ls_t001-waers.
ls_data-btext = ls_t001-butxt.
ls_data-taxno = ls_t001-stceg.

 

Fazit

Beim Lesen der internen Tabellen haben wir vor allem auf das Thema Modernes ABAP fokusiert, um die Neuerungen und möglichen Fehlerquellen aufzuzeigen. Beim Zugriff über READ TABLE kann man einige Schwächen der neuen Funktionen vermeiden, ist aber dann auch der alt-gewohnte Programmierstil.


Enthaltene Themen:
Modernes ABAPInterne TabellenPerformance
Kommentare (0)

ABAP - SELECT FROM @itab

Kategorie - ABAP

Über eine interne Tabelle selektieren war früher mit vielen Zeilen Code realisiert, heute funktioniert es auch praktisch über den Select.

20.01.2022

ABAP - Text, String, Template

Kategorie - ABAP

Wie nutze ich Zeichenketten in der modernen ABAP Entwicklung und wie verhalten sich diese mit Inline-Deklarationen zusammen. Weiterhin schauen wir uns Fehler an, die damit passieren können.

14.01.2022

ABAP - Predicative Method Call

Kategorie - ABAP

Durch das OO Konzept werden für komplexe Abfragen meist eigene Methoden verwendet. In diesem Artikel geht es um den Vergleich des Ergebnisses aus solchen Methoden.

14.05.2021

ABAP - Performance für den SELECT

Kategorie - ABAP

In diesem Artikel schauen wir uns noch ein paar Spezialfälle mit dem SELECT an und beleuchten die Performance dieser Konstrukte. Wir zeigen dir die aktuellen Alternativen dafür und geben kleinere Tipps beim Lesen.

02.04.2021

ABAP - Objekte prüfen (Instanzen)

Kategorie - ABAP

In diesem Artikel zeigen wir dir, wie du Instanzen analysieren und auf diese korrekt reagieren kannst, wenn du diese zum Beispiel bei einer Verarbeitung übergibst und individuell reagieren möchtest.

19.03.2021