In Ergänzung: Es bietet sich in solchen Fällen über Arrays im Mittel ganz performant auf Datenmengen zugreift.
Wir haben die Arraysize bis zu einem Limit bei jedem Fetch verdoppelt bis das Limit hinter dem keine Geschwindigkeitszugewinn mehr zu holen war.
Zumindest auf Oracle und
SQL Server hat die 'Strategie' sehr gute Ergebnisse geliefert egal wieviele Sätze in den Tabellen gespeichert waren.
Ich habe zu dem Zweck ein Histogramm zur Werteverteilung vom MS
SQL Server gezogen und dann immer eine möglichst gleich große Anzahl von Zeilen abgeholt.