Wie gesagt: lokal ist die Anzahl Felder einer Tabelle für den physischen Zugriff auf dieselbe nicht relavant.
Von der Platte wird ein Block in den FileControlBlock (FCB) gelesen, in dem der komplette Satz in aller Schönheit steht. Nun bedarf es nur noch der Moves aus dem Block in die einzelnen Felder, wobei hier SQL erst mal eigene Felder generiert und im RPGCode noch mal in die Variablen übertragen wird.
Ob man nun 1 Feld oder die max. möglichen 8000 Felder einer PF bewegt liegt unterhalb von Nanosekunden. Die Plattenzugriffe sind da viel entscheidender bevor die Übergabe an das Programm passiert.

Ein FCB kann mehr als 1 Zeile enthalten, so dass der nächste Read nur den Pointer verschiebt.