daveslab, немного больше информации ...
Если вашему приложению необходим полный набор результатов для начала обработки данных, больший размер выборки может принести улучшения.Однако магического числа нет, необходимо проверить наиболее полезное значение.
Настройка размера предварительной выборки может повлиять на производительность приложения.Увеличение размера предварительной выборки уменьшит количество циклов, необходимых для получения всех данных, но увеличит использование памяти.Это будет зависеть от количества и размера столбцов в запросе и количества ожидаемых строк.Также это будет зависеть от памяти и загрузки процессора клиентского компьютера JDBC.Оптимальным является то, что автономное клиентское приложение будет отличаться от сильно загруженного сервера приложений.Также следует учитывать скорость и задержку сетевого подключения.
Клиент Oracle JDBC, кажется, предварительно инициализирует некоторые структуры памяти для хранения полного размера предварительной выборки.Таким образом, если вы установите размер предварительной выборки 500, в 50 раз вы выделите больше памяти, чем если бы у вас был размер предварительной выборки = 10. Это огромная дополнительная нагрузка на GC, особенно если вы на самом деле не читаете эти строки.Можно подумать, что вы можете запустить GC в 50 раз чаще, чем нужно, если вы обычно выбираете только несколько строк;это сильно повлияет на скорость отклика вашего приложения.
Если возможно, я рекомендую использовать setFetchSize для каждого запроса.Например, если вы знаете, что конкретный запрос будет когда-либо возвращать только несколько строк, то установите размер выборки равным 5. Если вы знаете, что запрос вернет 1000 строк, используйте размер выборки 100.
Какэвристика, преимущества от 50 до 100 ограничены.
Надеюсь, вы понимаете, я использую переводчик Google.