Einzelnen Beitrag anzeigen

fisipjm

Registriert seit: 28. Okt 2013
299 Beiträge
 
#8

AW: ListView Performance bei vielen Datensätzen (FMX)

  Alt 16. Jul 2024, 10:40
Zusätzlich kann man ggf. auch noch die Ermittlung der Datensätze aus der SQL-Datenbank optimieren.
  • Optimierung der SQL-Abfrage selbst, damit der DB-Server das Ergebnis schneller ausliefert
  • Wenn man die SQL-Ergebnisse in irgendeinem DataSet mit "while not eof - next" durchläuft, kann "AutoCalcFields:=false" des DataSets enorme Performance bringen, selbst wenn es gar keine berechneten Felder gibt.
  • Noch viel schneller lassen sich so große Datenmengen z.B. per ADO mit TADOQuery1.Recordset.GetRows(...) direkt in ein großes Array laden, ohne Schleife und Next usw.
Da ist, befürchte ich, nicht mehr viel Luft nach oben. Es sind nur die Felder die selektiert werden auch in der SQL Abfrage, ohne Sortierung.
Außerdem liegt der Dataset bereits geöffnet auf meinem TDataModule. Habe also keinen Overhead für das Öffnen des Datasets. Die CalcFields sind aus, haben aber auch keinen Impact auf die Ladezeit (getestet).
Ich gehe in einer EOF schleife durch. Könnte mal versuchen mit einer for schleife die RecNo zu setzen, vielleicht fallen dadurch noch ein paar Prüfungen die im Next durchgeführt werden weg.
  Mit Zitat antworten Zitat