Ich habe leider keine Ahnung von der "typischen" Delphi Datenbankentwicklung und daher auch nicht vom ADODataset und wie das genau mit dem LiveBindings zusammenarbeitet.
Nach Deiner Beschreibung hört sich das aber so an, als ob die Daten tatsächlich in das StringGrid geladen würden.
Egal, welche Datenbank man im Hintergrund verwendet, aber das sollte man grundsätzlich vermeiden, insbesondere bei dieser hohen Anzahl von Datensätzen.
Wenn ich also einige tausende Datensätze in einem FireMonkey-Grid anzeigen möchte, dann verwende ich das TGrid (und nicht das TStringGrid). Denn das Grid hat das so nützliche "OnGetValue" Event, in dem Du das benötigte Datenelement zur Anzeige zur Verfügung stellen kannst:
Delphi-Quellcode:
procedure TForm10.Grid1GetValue(Sender: TObject; const Col, Row: Integer;
var Value: TValue);
begin
// Hier mit entsprechenden Bezug auf COL und Row den passenden Inhalt in Value zurückliefern
end;
Nur wenn ein Datenbank-Element also auch tatsächlich angezeigt werden soll, wird eine Dateninformation aus der Datenbank benötigt, daher geht die Anzeige sehr schnell (da macht es dann keinen Unterschied, ob 2.000 oder 2.000.000 Datensätze in der
DB sind).