Einzelnen Beitrag anzeigen

Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Sql-Anfrage mit WHERE langsamer als ohne trotz Index?

  Alt 21. Mai 2005, 15:05
Zitat von gmc616:
Zitat von Union:
Hast Du vielleicht die Datenbankverbindung geschlossen?
AdsQuery.Close? Natürlich, bei jedem Schließen meines SucheFensters.
Ich meinte eigentlich die AdsConnection
Zitat von gmc616:
aus AdsQuery.IndexDefs.Items[i].FieldExpression erfahre ich nur die einzelnen Indices zB. 'name' oder 'plz;ort'. Anders komme ich z.Z.nicht rann, da mir die Tools zu den Clipper-DBs fehlen.
Zitat von Union:
[*]Verwendest Du ADSSettings, und wenn ja welche
die Standarteinstellungen, außer ShowDeleted := false
Zitat von Union:
[*]Befindet sich eine grosse Anzahl von Deleted-Records in der Tabelle[/list]
Unteranderem mit sicherheit ja
Dann liegt da unter anderem das Geschwindigkeitsproblem. XBase-Tabellen haben ein Deleted-Flag. Wenn Du gelöschte Sätze nicht anzeigen läßt, so müssen die immer gefiltert werden. Das dauert lange. Du solltest Die Tabelle mal reorganisieren mit Packtable.
Zitat von gmc616:
ich hab jetzt mit
Delphi-Quellcode:
AdsQuery.SetKey;
AdsQuery.FieldByName('name').AsString := 'g';
AdsQuery.GotoNearest;
rum experimentiert, aber so richtig funktioniert das auch nicht.
Mal findet "er" einen Datensatzen, einen anderen wieder nicht ...
Ist ja auch klar, wenn Du mit Kleinbuchstaben arbeitest. Du solltest zum Suchen ein Feld aufnehmen wie
UCase(Name) as Suchname und dann nach diesem Feld mit AnsiUppercase suchen.

Für die direkte Bearbeitung der Tabellen und Db gibt es das kostenlose Tool ARC, das kannst Du Dir von ExtendedSystem runterladen.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat