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