Възможни обяснения:
-
Java не прави нищо, докато Oracle изчислява първите 1000 реда вместо първите 10.
-
Oracle не прави нищо, докато Java изчислява последните 1000 реда вместо последните 10.
-
Комуникационните протоколи (напр. TCP/IP) чакат много и след това трябва да обработват повече данни наведнъж, но върховият трансфер на данни ще бъде намален от хардуерни ограничения . Това се противодейства от режийните разходи на протокола, така че трябва да има оптимален размер на извличане и всичко по-малко или повече ще бъде по-бавно;))
-
Ще се влоши, ако процесът на извличане е синхронен с друг Java код, така че Java иска повече редове само след обработка на предишните данни и Oracle не прави нищо междувременно.
Представете си, че има 3 души:
- Първият сгъва хартия А4 наполовина
- Вторият носи купища сгъната хартия от една стая в друга
- 3-та изрязва някаква форма от сгънатата хартия.
Колко големи трябва да са купчините, ако първият трябва да изчака, докато вторият се върне, а вторият трябва да изчака, докато третият свърши работата си?
Стекове от 1000 няма да са по-добри от купчини от 10, предполагам;))