Da hilft nur ein scrollable Cursor, mit dem man dann auch vor und zurück positionieren kann. Dies ist auf jeden Fall schneller als immer wieder den Select neu durchführen zu lassen und dann auch nur noch ein Teilergebnis auszuwerten dass von Aufruf zu Aufruf auch noch abweichen kann.
Mit Limit belaste ich den Server stärker als mit einem positionierbaren SQL-Cursor (wobei der auch sowohl dynamisch als auch statisch sein kann).