Möjliga förklaringar:
-
Java gör ingenting medan Oracle beräknar de första 1000 raderna istället för första 10.
-
Oracle gör ingenting medan Java beräknar de sista 1000 raderna istället för de senaste 10.
-
Kommunikationsprotokoll (t.ex. TCP/IP) väntar mycket och måste sedan hantera mer data på en gång, men toppdataöverföringen kommer att strypas ner av hårdvarugränser . Detta motverkas av protokollets overhead, så det borde finnas optimal hämtningsstorlek och allt mindre eller mer skulle vara långsammare;))
-
Det skulle bli värre om processen för hämtning är synkron med annan Java-kod, så att Java ber om fler rader först efter att ha bearbetat tidigare data och Oracle gör ingenting under tiden.
Föreställ dig att det är 3 personer:
- Den första viker A4-papper på mitten
- 2:an tar med sig travar med vikt papper från ett rum till ett annat
- Tredje skär någon form från det vikta papperet.
Hur stora ska stackarna vara om den första måste vänta tills den andra kommer tillbaka och den andra måste vänta tills den tredje är klar med sitt jobb?
Stackar på 1000 kommer inte att vara bättre än staplar på 10 antar jag;))