Einzelnen Beitrag anzeigen

Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#6

AW: Komplexe SQL-Abfrage optimieren

  Alt 19. Feb 2025, 13:36
Die äußere Abfrage liefert nur die Dokumente zurück, deren ID bereits ermittelt wurde.
Ob mit "or", "in" oder "exists" dürfte kaum einen großen Unterschied darstellen.

Die eigentliche Bremse könnte die Verknüpfung aller Worte mit allen Dokumenten darstellen.
Neben dem verwendeten Index wirkt sich auch der Speicherverbrauch der Abfrage schnell auf die Geschwindigkeit aus.
Code:
SELECT    id.docid
FROM      ftiwid id
INNER JOIN ftiword w ON id.wordid = w.wordid
WHERE     (w.word LIKE {s gesuchteswort%})
Ich würde es mit einem left join versuchen:
Code:
SELECT    distinct id.docid
FROM      ftiword w
left join ftiwid id ON id.wordid = w.wordid
WHERE     (w.word LIKE {s gesuchteswort%})
Mehrfache Rückgabe des selben Dokuments ist hier nicht erwünscht (distinct).
Natürlich könnte man die Anzahl der Dokumente hier sinnvoll z.B. auf die ersten 200 begrenzen.
  Mit Zitat antworten Zitat