Einzelnen Beitrag anzeigen

Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#1

Firebird - Suche beschleunigen

  Alt 19. Mär 2006, 13:37
Datenbank: Firebird • Version: 1.5 • Zugriff über: FIBPlus 6.0
Hallo,

ich hab da mal wieder ne Frage Wie kann ich die Suche in einer Firebird-DB / pFIBDataset bescheunigen?
Folgende Situation: Eine Tabelle mit Kundendaten, in der möchte ich nach einem Kunden anhand seiner Kundennummer suchen. Das Feld 'KUNDEID' ist vom Typ INTEGER und ist der PK, hat also einen Index.
Wenn ich jetzt suche:
Delphi-Quellcode:
//Variante 1:
with dsetKunde do begin
  Active := true;
  DisableScrollEvents;
  Locate('KUNDEID', KuNr, []);
  EnableScrollEvents;
end;

//Variante 2:
with dsetKunde do begin
  Filter := 'KUNDEID' + KuNr;
  Filtered := true;
  Active := true;
end;
dann dauert das ewig. Zur Zeit hab ich mehr oder weniger nur Testdaten drinne, so etwa 30000 Datensätze. Das Suchen dauert jedoch mal ganz locker 15-20 Sekunden im ungünstigen Fall. Es werden im Endeffekt bestimmt 10-15 mal so viele Datensätze sein, da ist so eine lange Suchzeit nicht akzeptabel.
Gibts es da noch irgendwelche Tricks, das ganze schneller zu machen?
Gruß, Jan
  Mit Zitat antworten Zitat