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 Deep Dive - CORRESPONDING

Kategorie - ABAP

In diesem Artikel einmal etwas mehr über das neue Corresponding Statement und wie man es im Detail einsetzen kann. Dabei schauen wir einmal auf die zusätzlichen Features.

16.09.2022

ABAP - Step

Kategorie - ABAP

Heute einmal ein neuer Zusatz für die Schleifen und wie du ihn verwenden kannst. Mit Step hast du die Möglichkeiten Schritte in einer Schleife zu überspringen.

02.09.2022

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