Hallo
in meiner Anwendung mache ich zum Suchen von Artikeln das, was wohl 1000000 Programme so oder ähnlich machen:
select artikelnummer from material
where bezeichnung like :bezeichnung
Wobei im Parameter :Bezeichnung ein String mit Jokerzeichen (% ...) stecken kann, damit der Benutzer generisch suchen darf. Über die Spalte Bezeichnung ist ein Index gelegt. Die Interbase-Tabelle hat ca 30000 Zeilen. Testet man dieses Statement in ISQL, so erhält man sofort ein Ergebnis. In Delphi in einer TQuery hingegen läuft das ganze ca 10 Sekunden, daher nehme ich an, es wird ein Full-Table-Scan gemacht. Was passiert mit meinem Statement? Leider habe ich nur D3Pro und keinen SQL-Monitor.
Einen Query-Plan akzeptiert TQuery ebenfalls nicht (wohl aber ISQL).
Vielen Dank für Hinweise!!!!
Kai!!!!
in meiner Anwendung mache ich zum Suchen von Artikeln das, was wohl 1000000 Programme so oder ähnlich machen:
select artikelnummer from material
where bezeichnung like :bezeichnung
Wobei im Parameter :Bezeichnung ein String mit Jokerzeichen (% ...) stecken kann, damit der Benutzer generisch suchen darf. Über die Spalte Bezeichnung ist ein Index gelegt. Die Interbase-Tabelle hat ca 30000 Zeilen. Testet man dieses Statement in ISQL, so erhält man sofort ein Ergebnis. In Delphi in einer TQuery hingegen läuft das ganze ca 10 Sekunden, daher nehme ich an, es wird ein Full-Table-Scan gemacht. Was passiert mit meinem Statement? Leider habe ich nur D3Pro und keinen SQL-Monitor.
Einen Query-Plan akzeptiert TQuery ebenfalls nicht (wohl aber ISQL).
Vielen Dank für Hinweise!!!!
Kai!!!!
Comment