Почему Oracle JDBC так медленно работает и как это исправить?

JDBC fetch size по умолчанию для Oracle драйвера равен 10, что часто приводит к избыточным обращениям к серверу базы данных. Это происходит потому, что при запросе данных драйвер запрашивает данные небольшими порциями, даже если клиент способен обработать больший объем данных. Это особенно заметно при обработке OLTP-запросов, где возвращается небольшое количество записей, но многократные обращения к серверу создают задержки.
Почему Oracle JDBC так медленно работает и как это исправить?
Изображение носит иллюстративный характер

Повышение fetch size до 1000 и более, позволит Java-клиенту получить больше данных за один запрос, уменьшив задержки и нагрузку на сервер БД. Важно заметить, что большинство JDBC драйверов имеют неограниченный fetch size по умолчанию, и это считается оптимальным решением. Изменять fetch size необходимо через настройки драйвера или фреймворка.

Ограничивать количество извлекаемых данных рекомендуется через SQL-запрос LIMIT, используя JPA API setMaxResults(), но не через fetch size. При вызове getResultList(), JPA все равно подтянет весь результат в память, и fetch size не окажет влияния на объем данных. В некоторых случаях, при обработке очень больших объемов данных, следует использовать StatelessSession и ScrollableResults для управления памятью.

Рекомендации по настройке fetch size применимы к типичным сценариям, когда Java клиент находится на отдельном сервере от БД и имеет достаточно памяти. Если у вас другой сценарий, то настройки могут отличаться. В любом случае fetch size необходимо настраивать, так как значение по умолчанию может негативно влиять на производительность системы.


Новое на сайте

19817В Луксоре нашли стелу с римским императором в образе фараона 19816Экипаж Artemis II о моменте, когда земля исчезла за луной 19815Почему луна выглядит по-разному в разных точках земли? 19814Adobe экстренно закрыла опасную дыру в Acrobat Reader, которую хакеры использовали с... 19813Метеорный поток, рождённый из умирающего астероида 19812Когда робот пишет за тебя прощальную смс 19811Что общего у лунной миссии, толстого попугая, загадочной плащаницы и лекарства от диабета? 19810Какие снимки Artemis II уже стали иконами лунной программы? 19809Кто на самом деле хочет сладкого — вы или ваши бактерии? 19808Как рекламные данные 500 миллионов телефонов оказались в руках спецслужб? 19807Экипаж Artemis II вернулся на землю после десяти дней в космосе 19806Зелёная и коричневая луна: почему геологи Artemis II уже не могут усидеть на месте 19805Эксперты уверены в теплозащитном щите Artemis II, несмотря на проблемы предшественника 19804Выжить внутри торнадо: каково это — когда тебя засасывает в воронку 19803Аляскинские косатки-охотники на млекопитающих замечены у берегов Сиэтла
Ссылка