Du hast einen Loop innerhalb dem du die DB abfragst. Je nach Datenvolumen kann es sinnvoll sein, wenn du vor dem Loop mit einem Select alle Daten in eine ITAB liest und innerhalb des Loops die itab entsprechend ausliest.
Sind das nur wenige Datensätze im LOOP wird das kaum spürbare Auswirkungen haben. Sobald der LOOP in die Tausende+ geht fängt man an das auch zu spüren. Denn bei kleineren "select single" verbringt SAP gerne mal mehr Zeit damit die Verbindung zur DB herzustellen und zu schliessen als tatsächlich Daten abzufragen. Was sich logischerweise direkt auf die Performance auswirkt. Bei Vollständig im ABAP gepufferten Tabellen ist das zwar nciht der Fall, diese sind aber auch nicht langsamer wenn man sie vorher in die itab liest.
Ich behaupte, ein Zugriff auf eine vernünftig indizierte interne Tabelle ist immer noch schneller als auf eine gepufferte Datenbanktabelle, weil die Pufferung den SELECT nicht parsen muss. Zudem kann man der internen Puffertabelle genau den Index auf den Leib schreiben, den man in diesem Programm für den Zugriff brauchen wird. Und schließlich kann man schon beim Füllen der Puffertabelle eine Vorauswahl treffen, bei der Werte, die man ganz sicher nicht brauchen wird (etwa längst vergangene Datümer betreffend) gar nicht erst in die Puffertabelle eingelesen werden. Dementsprechend kürzer sind später die Suchzeiten.
Wieviel das ausmacht und ob das programmiertechnisch den Aufwand lohnt, ist eine andere Frage.