Einzelnen Beitrag anzeigen

ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Umstellung ADO -> DBExpress

  Alt 22. Dez 2010, 12:44
Naja, wir reden hier aber von einem Unterschied von 10 Minuten (ADO) zu 4 Sekunden (DBX) bei ein und derselben Abfrage. Das ist schon erheblich.
Es sei denn du kannst mir verraten, wie man ADO zu einer solcher Geschwindigkeit kriegt. Ich hab schon ein bisschen rumprobiert, z.B. CursoLocation auf clUseServer gesetzt, wodurch ich die Performance zwar verbessern konnte, was aber an anderer Stelle wieder zu Fehlern geführt hat, weil auf einmal RecordSets leer waren (die definitv nicht leer sein können). Im Großen und Ganzen weis ich aber nicht, was man da noch alles wie rauskitzeln kann.
Der Zugriff auf die Daten erfolgt im Prinzip wie folgt (beispielhaft):
Delphi-Quellcode:
procedure GetData;
var
  DataSet: TADODataSet;
begin
// Verbindung aufbauen
{...}
DataSet.Open;
while not DataSet.Eof do
begin
// Daten lokal in Objekten speichern
{...}
DataSet.next;
end

end;
Die Datenübertragung vom Server zum Client ist dabei (clUseClient) in wenigen Sekunden beendet. Das Iterieren durch das Dataset braucht dann ewig (~10min).
Gleicher Code nur mit TSQLDataSet (also DBX) ist in ca. 4 Sekunden erledigt.

Also wenn es da was zu verbessern gäbe, würde das auch reichen
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat