2013-04-11 2 views
0

У меня есть SQL-запрос, который возвращает 92000 строк, и когда я использую while с ResultSet.next(), он тратит много времени. Я обнаружил, что источником проблемы является условие итерации ResultSet .следующий(). У вас есть идея, как я могу улучшить производительность и сократить время на трафик.Оптимизация ResultSet итерации

+1

В какой базе данных вы используете это? –

ответ

0

ResultSet.next() фактически работает с сетевым подключением и связывается с сервером, чтобы принести больше данных, как только вы повторили предыдущие строки.

Так две подсказки:

  1. Увеличить размер prefech в запросе результатов
  2. Создание индексов в базе данных. Это позволит повысить производительность базы данных, которая сделает

Посмотрите также на эти две ссылки, которые имеют дело с вашим вопросом и размер выборки:

Увеличение размера выборки означает меньшее время для получения данных из базы данных. Resultset подобен буферу, который извлекает X количество строк и повторений после их повторения по ним.

Наконец, вы можете попытаться использовать потоки, разделив один запрос на 4-5 запросов, которые выполняются в отдельных потоках одновременно.

Смежные вопросы