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 - Tabellenzugriff (intern)

Kategorie - ABAP

Schauen wir uns in diesem Artikel einmal den Tabellenzugriff auf interne Tabellen an und wie sie den READ TABLE ablösen.

03.02.2023

ABAP - FINAL

Kategorie - ABAP

In diesem Artikel schauen wir uns einmal das neue FINAL Sprachkonstrukt an, wie es funktioniert und was du damit anstellen kannst.

23.12.2022

ABAP Deep Dive - VALUE

Kategorie - ABAP

In diesem Artikel wollen wir uns noch einmal das Value Statement in allen Ausprägungen anschauen und wie du es in deiner täglichen Arbeit nutzen kannst.

11.11.2022

ABAP - Common Table Expression (CTE)

Kategorie - ABAP

In diesem Artikel wollen wir uns einmal den allgemeinen Tabellenausdruck WITH anschauen und wie du ihn im Alltag nutzen kannst.

28.10.2022

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