Ansicht
Dokumentation

ABENITAB_KIND - ITAB KIND

ABENITAB_KIND - ITAB KIND

rdisp/max_wprun_time - Maximum work process run time   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

Auswahl der Tabellenart

Welche Tabellenart im Einzelfall einzusetzen ist, richtet sich danach, welche Einzelzeilenzugriffe am häufigsten für die Tabelle angewendet werden. Für Tabellen mit Sekundärschlüsseln werden diese Regeln entsprechend relativiert.

  • Standardtabellen
    Diese Tabellenart eignet sich immer dann, wenn die einzelnen Einträge über den Index angesprochen werden können. Der Indexzugriff ist der schnellstmögliche Zugriff auf Tabelleneinträge. Das Füllen einer Standardtabelle sollte über das Anhängen von Zeilen mit APPEND und die übrigen Zugriffe mit einer Indexangabe (Zusatz INDEX der entsprechenden Anweisungen) erfolgen. Da der Aufwand für Zugriffe über den Primärschlüssel auf Standardtabellen linear mit der Anzahl der Tabelleneinträge steigt, sollten solche Zugriffe auf Standardtabellen möglichst nur dann verwendet werden, wenn das Füllen der Tabelle von der übrigen Verarbeitung entkoppelt werden kann. Wenn eine Standardtabelle nach dem Füllen sortiert wird, hängt ein Schlüsselzugriff mit binärer Suche (BINARY SEARCH) nur noch logarithmisch von der Anzahl der Tabelleneinträge ab.
  • Sortierte Tabellen
    Diese Tabellenart eignet sich immer dann, wenn die Tabelle schon beim Aufbau sortiert vorliegen muss. Das Füllen der Tabelle erfolgt dann durch Einfügen mit INSERT gemäß der durch den primären Tabellenschlüssel definierten Sortierreihenfolge. Bei Schlüsselzugriffen hängt der Aufwand logarithmisch von der Anzahl der Tabelleneinträge ab, da automatisch eine binäre Suche durchgeführt wird. Sortierte Tabellen eignen sich insbesondere auch für teilsequenzielle Verarbeitungen in einer LOOP-Schleife, wenn Anfangsstücke des Tabellenschlüssels in der WHERE-Bedingung angegeben werden.
  • Hash-Tabellen
    Diese Tabellenart eignet sich immer dann, wenn Schlüsselzugriffe die zentrale Operation auf Tabelleneinträge darstellen. Bei Hash-Tabellen sind keine Zugriffe über einen primären Tabellenindex möglich. Dafür ist bei Schlüsselzugriffen der Aufwand pro Zugriff immer konstant und unabhängig von der Anzahl der Tabelleneinträge. Wie bei Datenbanktabellen ist der Schlüssel von Hash-Tabellen immer eindeutig. Hash-Tabellen eignen sich also auch um datenbankähnliche interne Tabellen aufzubauen und entsprechend zu verwenden.

Beispiel

Eine für einen Indexzugriff vorgesehene Tabelle scarr_tab_down soll absteigend nach ihrem Schlüsselfeld sortiert vorliegen. Dies kann nur eine Standardtabelle sein. Für eine aufsteigende Sortierung kann und sollte eine sortierte Tabelle verwendet werden, hier scarr_tab_up. Falls nur Schlüsselzugriffe benötigt werden kann eine Hash-Tabelle wie scarr_tab_key verwendet werden.

DATA scarr_tab_down
  TYPE STANDARD TABLE OF scarr
       WITH NON-UNIQUE KEY carrid.

DATA scarr_tab_up
  TYPE SORTED TABLE OF scarr
       WITH UNIQUE KEY carrid.

DATA scarr_tab_key
  TYPE HASHED TABLE OF scarr
       WITH UNIQUE KEY carrid.

SELECT *
       FROM scarr
       ORDER BY carrid DESCENDING
       INTO TABLE @scarr_tab_down.

scarr_tab_up = scarr_tab_down.

scarr_tab_key = scarr_tab_up.

cl_demo_output=>new(
)->write( scarr_tab_down[ 1 ]
)->write( scarr_tab_up[ 1 ]
)->write( scarr_tab_key[ carrid = 'UA' ]
)->display( ).






TXBHW - Original Tax Base Amount in Local Currency   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 4682 Date: 20240523 Time: 152120     sap01-206 ( 80 ms )