OpenJPA предоставил некоторый параметр в FetchPlan.
(http://openjpa.apache.org/builds/1.2.0/apidocs/org/apache/openjpa/persistence/FetchPlan.html)
И я застрял в одном из них, FetchBatchSize.
Надеюсь, что кто-то может поделиться своим опытом.
Вот сценарий, скажем, я собирался выбрать до 1000 записей из базы данных (MS-SQL)
1. если я оставлю FetchBatchSize значение по умолчанию -1, то для возврата 1000 записей потребуется около 20 секунд;
если я установлю для FetchBatchSize значение 100, затраты времени будут резко сокращены до менее чем 2 секунд, это хорошо, но если я попытаюсь получить только 50 записей, что меньше, чем FetchBatchSize 100, это займет намного больше времени (50 секунд в моем тесте), что недопустимо.
хорошо, так что, я думаю, если FetchBatchSize превысит желаемое пользователем количество, это займет больше времени. Я мог бы изменить FetchBatchSize во время выполнения, в соответствии с количеством, установленным пользователем. вы хотите 1000, я установил FetchBatchSize на 1000, вы хотите 100, я установил его на 50, но что если пользователю нужно всего несколько записей? Я тоже установил FetchBatchSize как 2?
Итак, мой вопрос, как выбрать правильный FetchBatchSize, когда maxResultCount является переменной? есть ли какое-либо значение DEFAULT, например, 20, в документе openJPA, которое подходит для большинства сценариев? Или рекомендуется изменить его во время выполнения.
Любой комментарий приветствуется. Спасибо!