Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 
#4

Re: zu langsamer select! warum??

  Alt 5. Jul 2005, 21:58
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]
  Mit Zitat antworten Zitat