Wie Dieter schon sagt:
1. Baue das SQL-Statement basierend auf den physischen Dateien auf oder erstelle eine View, in der die Verknüpfungen der physischen Dateien hinterlegt sind und in der die Select/Omit-Anweisungen als Where-Bedingung ausgegeben werden.
2. Führe Dein SQL Statement mit dem iSeries Navigator aus
(iSeries-Navigator öffnen --> Datenbanken --> Datenbank auswählen --> In Kasten rechts unten "Eine SQL Prozedur ausführen " auswählen --> Über JDBC-Setup Bibliotheksliste und Naming setzen --> das SQL Statement eingeben und mit Visual Explain ausführen.
3. Visual Explain sagt Dir u.a. ob und welcher Index erforderlich ist. Viel interessanter aber ist, zu wissen mit welcher Query-Engine das SQL-Statement ausgeführt wird.
Klicke auf Final Select und schaue auf die letzten Einträge auf der rechten Seite.
Sofern die Abfrage von der SQE (SQL Query Engine) ausgeführt wird, prüfe den Index-Advice und lege ggf. die erforderlichen Zugriffswege an. Sofern die Abfrage von der CQE (classic query engine) ausgeführt wird, sagt er Dir auch warum. Da Du aktuell auf logische Dateien zugreifst, wird unweigerlich die alte CQE verwendet! Versuche die Abfrage auf die SQE zu portieren und erstelle anschließend die erforderlichen Indices.

STRDBG bringt nur einen Teil der Informationen, die Visual Explain ausgibt, so kannst Du z.B. nicht feststellen welche Query Engine die Abfrage ausgeführt hat.

Birgitta