Zugriffsoptimierung in Queries 
Mit OPEN SQL ist es möglich, SELECT- und GET-Anweisungen so zu definieren, dass nur bestimmte Felder aus der Datenbanktabelle gelesen werden. In ABAP-Reports kann so eine deutliche Verbesserung der Performance erzielt werden. Die SAP Query nutzt diese Möglichkeiten, um die Laufzeit von Query-Reports zu verbessern.
In SELECT-Anweisungen kann eine Liste der Felder angegeben werden, die tatsächlich aus der Datenbanktabelle gelesen werden.
Hinweis
Bei der Verwendung von '*' als Feldliste werden alle Felder gelesen.
Da die Übertragung der Felder aus der Datenbank in die entsprechenden Programmfelder häufig mit Konvertierungen verbunden ist, ist die Verwendung von '*' uneffektiv, wenn eine Datenbanktabelle sehr viele Felder enthält und nur einige wenige dieser Felder in einem Programm wirklich benötigt werden. Dieser Fall trifft in der Regel für Query-Reports zu.
Auch in der Get-Anweisung ist es möglich, eine Liste der Felder anzugeben, die in einem Report wirklich benötigt werden. Nur diese Felder werden aus der logischen Datenbank gelesen. Der Zusammenhang zwischen der GET- und der SELECT-Anweisung besteht darin, daß im betreffenden Datenbankprogramm die GET-Anweisung letztlich mit Hilfe einer SELECT-Anweisung realisiert wird. Die Angabe von Feldlisten in einer GET-Anweisung ist nur möglich, wenn die betreffende logische Datenbank dies unterstützt.
Die von der Query unterstützte Ausnutzung der Feldlisten in SELECT- und GET-Anweisungen wird unter dem Begriff Zugriffsoptimierung zusammengefaßt.
Bei der Generierung eines InfoSets wird eine Referenzliste aller Felder erstellt, die bei Benutzung des InfoSets in einer Query benötigt werden.
Problematisch ist die Verwendung von Zusatztabellen und Coding-Teilen (Zusatzfelder, Codings zu den Zeitpunkten GET, GET LATE und Satzverarbeitung), da diese eventuell auf Felder zugreifen, die nicht in der Referenzliste stehen. Bei der Verwendung von ABAP-Code ist es in Ausnahmefällen möglich, daß das InfoSet nicht alle Informationen enthält, um die benötigten Felder zu ermitteln. Die Referenzliste wird dann unvollständig generiert. Dies kann in Query-Reports dazu führen, daß benötigte Felder bei der Abarbeitung des Reports immer nur ihren Initialwert enthalten.
Die Referenzliste stellt sicher, daß der Reportgenerator aus den in der Liste direkt benötigten Feldern alle Felder bestimmen kann, die implizit durch Verwendung einer Zusatztabelle oder eines Codings benötigt werden. Mit diesen Informationen ist der Reportgenerator dann in der Lage, bei allen zu generierenden SELECT- und GET-Anweisungen Feldlisten anzugeben.

Solange ein InfoSet keine Zusatzfelder und keine Coding-Teile enthält, kann die Referenzliste vollständig und damit fehlerfrei bei der Generierung erstellt werden.
Zur Erzeugung der Referenzliste muß ermittelt werden, welche Felder zur Generierung von Query-Reports benötigt werden. Das können folgende Felder sein:
Felder, die in Feldgruppen aufgenommen wurden
Felder, die zur Formulierung der WHERE-Bedingung bei angeschlossenen Zusatztabellen verwendet werden
Felder, die im Coding von Zusatzfeldern angesprochen werden
Felder, die im Coding zu den Zeitpunkten GET / GET LATE bzw. zum Zeitpunkt der Satzverarbeitung angesprochen werden