So, lange Analyse, und im Endefeffekt einige Statements von gut 1 min Laufzeit auf unter 1s gedrückt. Das Problem sind die Statements selbst. Und hat auch nichts mit den Aliasnamen zu tun. Der Optimizer der AS400-DB2 scheint schlechter zu arbeiten als der LINUX-DB2 Optimizer. Denn der zeigt bessere Ergebnisse und verwendet auch bei gleichen Tabellen / Indizes solche.
Beispiel :

SELECT A.FLD1, A.FLD2, A.FD3, B.FLD1, B.FLD2
from TABELLE1 A, TABELLE2 B where A.FLD1 = B.FLD1
and B.FLD2 in (select C.FLD2 from TABELLE3 WHERE C.FLD3 = X and C.FLD4 = y)

Soweit sogut.Viele Tests mit Views / Indizes haben nix gebracht. Das Statement anders formuliert geht granatenschnell.

SELECT A.FLD1, A.FLD2, A.FLD3, B.FLD1, B.FLD2, C.FLD3, C.FLD4
from TABELLE3 C, TABELLE1 A, TABELLE2 B
where A.FLD1 = B.FLD1
and B.FLD2 = C.FLD2C.FLD2
where C.FLD3 = X and C.FLD4 = y

Und jetzt kommts : Wenn ich in der FROM-Klausel die Tabellenreihenfolge ändere (Tabelle C weiter hinten) dann wirds wieder wesentlich langsam.

SELECT A.FLD1, A.FLD2, A.FD3, B.FLD1, B.FLD2, C.FLD3, C.FLD4
from TABELLE1 A, TABELLE2 B, TABELLE3 C
where A.FLD1 = B.FLD1
and B.FLD2 = C.FLD2C.FLD2
where C.FLD3 = X and C.FLD4 = y

Anders ist die Datenbank nicht zur performanten Zusammenarbeit zu bewegen. Eigentlich fast logisch, denn die Ergbnismenge von C ist (in diesem Fall) die kleinste. Dabei handelt sich aber um eine Tabell mit gut 1.000.000 Datensätzen