В качестве подробного здесь и подтвержденного здесь, число строк по умолчанию, которое Oracle возвращает в момент запроса на данные по JDBC равны 10. Я работаю над приложением, которое должно читать и сравнивать множество данных из нашей базы данных. Я думал, что если мы просто увеличим defaultRowPrefetch
до 1000, то, несомненно, наше приложение будет работать быстрее. Как оказалось, она выполнялась медленнее и примерно на 20%.
Затем мы решили немного увеличить число с 10 и посмотреть, как он работает. Мы видели увеличение на 10%, установив его где-то между 100 и 200. Я бы никогда не догадался, однако, что установка его выше приведет к тому, что наше приложение будет работать медленнее. Любые идеи, почему это может случиться?
Спасибо!
EDIT:
Просто для уточнения, я использую Oracle 11g R2 и Java 6.
ИЗМЕНИТЬ 2:
Хорошо, я хочу повторить свой вопрос, чтобы быть ясным, потому что, судя по приведенным ниже ответам, я не выражаюсь должным образом:
Как возможно, если я установил более высокий размер выборки, мое приложение будет работать медленнее? Для меня это звучит так: "Мы даем вам более быстрое подключение к Интернету, то есть более толстую трубку, но ваш просмотр в Интернете будет медленнее.
При прочих равных условиях, как и в наших тестах, нам очень любопытно, как наше приложение может ухудшиться только при этом изменении.