Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: zu langsamer select! warum??

  Alt 6. Jul 2005, 14:03
Die Ursache für den langsamen SELECT kann auch die WHERE-Bedingung:
WHERE EXTRACT(YEAR FROM B.HINABFLUGDATUM) = .... sein.
Die Datenbank muss für die Tabelle Buchungen einen Full-Table-Scan ausführen.
(für jeden Datensatz EXTRACT ausführen)
Würde man das Feld HINABFLUGDATUM indizieren und die WHERE-Bedingung so schreiben:
WHERE B.HINABFLUGDATUM>=:datum1 AND B.HINABFLUGDATUM <:datum2 könnte IB vom Index profitieren und ausserdem wäre die Abfrage viel flexibler.
Man könnte so z.B. alle Daten vom März 2004 abrufen.

Ich würde die Behauptung "Abfrage in Delphi langsam, aber in IB Console schnell" nur dann trauen,
wenn am Ende von GetSQL steht:
Clipboard.AsText := Result; und dann wirklich in der IB-Console mit Paste & Ausführen gearbeitet wird.
Andreas
  Mit Zitat antworten Zitat