SELECT und ORDER BY
Tücken der ORDER-BY-Klausel. Wann Sie darauf verzichten sollten und wann sie unabdingbar ist.
Die ORDER-BY-Klausel wird verwendet, um eine sortierte Liste von der Datenbank zu erhalten.
Dies ist aber häufig nicht sinnvoll!
Deutlich schneller geht es, wenn die Daten mittels SELECT INTO TABLE mit einem Mal in eine interne Tabelle gelesen werden und dann diese interne Tabelle mittels SORT sortiert wird.
Der Grund für die bessere Perfromance liegt in der SAP-Pufferung: Zwischen Datenbank und ABAP-Programm gibt es noch eine SAP-eigene Datenpufferung, die in der Regel sehr effizient arbeitet.
Bei der Verwendung von ORDER BY wird diese Pufferung umgangen.
Wenn Sie den größten Eintrag eines Feldes aus einer Tabelle benötigen, dann sollten Sie anstelle des folgenden Codings lieber eine Aggregatfunktion der Datenbank nutzen:
SELECT zaehl FROM dbtab INTO lv_groesster_zaehler
WHERE feld1 = lv_feld1
ORDER BY zaehl DESCENDING.
EXIT.
ENDSELECT.
Verwendung der Aggregatfunktion “MAX”:
SELECT max( zaehl ) FROM dbtab INTO lv_groesster_zaehler
WHERE feld1 = lv_feld1.
Hierbei wird zwar ebenfalls die SAP-Pufferung umgangen, die Datenbank hat jedoch in der Regel eigene schnelle Routinen für die Ergebnisselektion.
- 7. December: Excel Racing Simulation – Root Vole Race - 7. Dezember 2024
- 5. December: ABAPConf - 5. Dezember 2024
- 4. December: Only a lazy developer is a good developer - 4. Dezember 2024