Der Vorteil, wenn es
DBMS+Querykomponente das machen, daß dann die Daten konsistent bleiben, egal wie lange man drin rumscrollt, es bleibt immer in dem Zustand, wie zum Zeitpunkt der Abfrage.
Denn dort bleibt das Result-Set auf dem Server erhalten und das
Query holt die Daten nur noch dort raus.
Und wie groß ist der Speicherverbrauch, wenn man einmal durchgescrollt hat und die Daten schön gecached sind und alle so, wie am Anfang?
Die Problematik hier liegt nicht am anschauen hübscher Terrabytes, sondern am skalierbaren durchlaufen einer sehr großen Datenmenge in akzeptabler Zeit. Da das lesen einzelner Datensätze einfach zu lange dauert, will der TE das happenweise machen. Dafür eignet sich nun mal das paging, denn das sind ja happen.
Mein Minipseudocode soll nur zeigen, wie man das hinter einer Art Liste verbergen kann. Man kann auch einfach einen Enumerator implementieren, dann kann man das komplett in einer for-in Schleife durchlaufen. Das wäre sogar noch richtigerer als mein kleines Dingsda, was ja eigentlich nur zeigen soll, wie simpel der ganze Kladderadatsch ist.