Ein gutes Datenbankdesign und eine darauf abgestimmte Anwendung läuft mit jeder Datenbank performant.
Spezielle DB-spezifische Methoden sind da grundsätzlich nicht nötig.
Die DB2/400 hat lange Zeit Designfehler halt bestraft (falsche Zugriffe, fehlende Indizes), seit V6 legt die DB da schon mal diese permanenten Indizes an, die dann beim nächsten IPL wieder weg sind.

Oracle und co. haben den Entwickler bei schlechtem Design durch Automatismen halt besser unterstützt, was man der DB2/400 nicht zu lasten legen sollte.

Ich lade z.B. aus einer Oracle-DB per Java Daten auf die AS/400 und umgekehrt.
Ein simpler SQL auf eine View in der Oracle-DB (select * from View) dauert bis zum 1. Satz schon mal mehrere Minuten.
Wenn ich dann mal nachfrage wieso das so lange dauert (an die DB darf ich nicht dran), dann bekomme ich nur zur Antwort "Das ist halt so, Indizes dürfen wir nicht anlegen da das die Anwendung sonst stören könnte".
Was für eine bescheuerte Aussage.
Wie kann ein Index die Anwendung stören?
Da kann ich mir nur vorstellen, dass da so mancher "order by" fehlt und man die Sortierung dann so erwartet wie sie die DB liefert und wundert sich dann beim nächsten Servicepack wieso die Anwendung auf einen Fehler läuft.