Ich habe eben mal (in einer interaktiven SQL Oberfläche) etwas rumgetestet. Wenn ich die Anweisung so zerlege, dass ich zunächst die Daten nur aus der tabelle2 selektiere und das Ergebnis in eine temporäre Tabelle in QTEMP speichere, dauert das ca. 1 Sekunde.

Wenn ich dann den join der tabelle1 gegen die QTEMP Tabelle laufen lasse, dauert es nochmal ca. 0,3 Sekunden. Insgesamt ist es also deutlich schneller als der Aufruf in einer einzigen Anweisung mit join.

Aber ich habe dann anstatt einer, leider zwei einzelne SQL Anweisungen. Ich weiß nicht, ob das in der Java Anwendung so einfach funktioniert.

Wenn ich quasi genau das gleiche mit einer common table expression mache, dauert es wieder lange (> 5 Sekunden).