Die "klassische" JOIN-freie Verbindung zwischen 2 Tabelen ist häufig langsamer, weil diese Art der Abfrage intern erst einen CROSS JOIN macht, und die Rückgabemenge dann in der WHERE Clausel filtert.
Bei großen Tabellen kann das schon derb bremsen.
Des weiteren kannst du ja mal kontrollieren, ob du in beiden Tabellen einen Index auf ADRNR erstellt hast.
Das wäre auch noch eine Idee ...
Du machst das jetzt so ...
SQL-Code:
SELECT A.Irgendwas
,B.Irgendwas
FROM BUCHUNGEN B, ADRESSEN A
WHERE EXTRACT (YEAR FROM B.HINABFLUGDATUM) = DeinDatum
AND B.ADRNR = A.ADRNR
Das sollte bei langen Tabellen deutlich schneller sein
SQL-Code:
SELECT A.Irgendwas
,B.Irgendwas
FROM BUCHUNGEN B
INNER JOIN ADRESSEN A
ON A.ADRNR = B.ADRNR
WHERE EXTRACT (YEAR FROM B.HINABFLUGDATUM) = DeinDatum
Ich hoffe es hilft und Firebird kann JOINS ...
[edit]
Grade erst gesehen ...
Ist die Abfrage eventuell auch nur langsam wenn du einen filter gesetzt hast ?
Die vielen % und LIKE's sind auch nicht grade schnell
[/edit]