SELECT … BETWEEN
Wenn fest steht, dass nur bestimmte Werte in einem Feld vorkommen, dann kann die Selektion durch Eingrenzung beschleunigt werden.
Eingrenzung zur Verkleinerung des Suchbereichs
Bei Tabellen, die die Belegnummer als Schlüsselfeld haben, kann es durchaus sinnvoll sein, die Belegnummern einzuschränken.
Gegebenenfalls muss das Belegnummern-Intervall zu ermittelt werden. In den meisten Fällen ist das Intervall zwar bekannt, aber auch ein Überlauf des Nummernkreises in acht oder zehn Jahren sollte berücksichtigt werden!
Sie müssen sich bei dieser Methode wirklich sicher sein, dass das verwendete Nummernkreisintervall auch Bestand hat!
Beispiel:
SELECT * FROM VBUK
WHERE VBELN BETWEEN ‘0030000000’ AND ‘0039999999’
AND …
Eingrenzung zur Einschränkung von Festwerten
Auch wenn ein Datenbankfeld nur beispielsweise vier Ausprägungen haben (Status: A, B, C, D), kann die Abfrage schneller sein, wenn Sie Werte eingrenzen:
Besser so:
SELECT * FROM NAST
WHERE objky IN s_objky
AND vstat BETWEEN ‘1’ AND ‘4’
AND erdat = sy-datum.
Als so:
SELECT * FROM NAST
WHERE objky IN s_objky
AND erdat = sy-datum.
Es gilt: Je mehr Vorgaben die Datenbank hat, um die Werte selektieren zu können, desto schneller können die relevanten Sätze gefunden werden.
Diese Einschränkung macht natürlich nur dann Sinn, wenn Sie genau wissen, welche Ausprägungen ein Feld haben kann und wenn Sie schon alles andere zur Performancesteigerung versucht haben.
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024
- So lange es den SAPGUI noch gibt… - 27. Juni 2024