Das kommt auch auf die Daten drauf an.
z.B. egal ob du nun selber das aufteilst, oder ob das System es macht.
Dank deines
ORDER BY PrimaryKeyPreferablyWithAClusteredIndex
im Beispielcode muß die
DB sowieso erstmal die komplette Result-Tabelle zusammenstellen, um sie überhaupt erstmal sortieren zu können und danach wird und kann erst der Ausschnitt extrahiert werden.
Wenn du das nun immer wieder neu abfragst, dann macht das die
DB praktisch jedes mal von Neuem.
Und selbst ohne Sortierung werden viele
DBMS das Result vermutlich dennoch umkopieren, denn sonst müsste sie die Tabelle vermutlich für andere Schreibzugriffe sperren, bis man endlich alles runtergeladen hat. Oder diese Zugriffe landen so lange, wie bei einer Transaktion, im Cache und werden erst in die Tabelle geschrieben, nachdem du mit Runterladen der aktuellen Anfrage fertig bis.
Wenn man nun wirklich nur die Daten von oben nach unten durchgehen will, dann ist es doch besser, wenn die
DB das nur einmal machen muß und man dann das Result sich vom System stückchenweise nachladen lässt?