Grundsätzlich funktionieren Abfragen so:
1.) der Client sendet seine
SQL-Anweisung an den Server
2.) der Server führt die
SQL-Anweisung aus
3.) wenn die
SQL-Anweisung ein Resultset (alles was mit SELECT beginnt) hat, wird die komplette Datenmenge an den Client übertragen
4.) der Server ist fertig und der Client speichert das gesamte Resultset zwischen
Das nennt man "
client seitigen Cursor"
Es gibt auch "
serverseitige Cursor"
3.) der Server speichert das gesamte Resultset zwischen und gibt auf Anforderung immer nur Teile an den Client.
4.) wenn der Client das Resultset schliesst, darf der Server das Resultset freigeben
Wie man sieht, ist bei dieser Variante der Speicherbedarf vom Client auf den Server übergegangen.
Bei vielen Clients droht hier Serverüberlastung.
Wenn du also ein Speicherproblem auf dem Client hast, solltest du
1.) die Anzahl der Spalten reduzieren
2.) die Anzahl der Datensätze reduzieren
3.) Arbeit vom Client zur Server delegieren (Stored Procedures)
4.) Hardware aufrüsten
Andere Lösungen gibt es nicht.