hibernate query.list () работает медленно - PullRequest
0 голосов
/ 06 августа 2020
 Collection<Domain> collection = hibernateQuery.list();
 Hibernate: select * from ( SELECT rr.C1 as C10_, rr.C7 as C70 from table_name rr  WHERE (1=1) AND 
 rr.c3>(sysdate- 45) ) where rownum <= ?

Вышеупомянутый запрос из Hibernate занимает всего несколько 100 миллисекунд. Но вызов list (), который выполняет вышеуказанный запрос и возвращает список, занимает больше минуты (иногда> 2 минут). Я не уверен, что является причиной этого. Я смог отследить время запроса из AppDynamics, но не смог детализировать, почему вызов list () занимает больше минуты

Количество возвращенных записей равно около 8-9к (иногда может быть и больше). В таблице содержится около 800 тыс. Записей, а столбец c3, указанный в запросе, проиндексирован. Я установил значение query.setMaxresults равным 50k. Количество столбцов в фактическом запросе равно 24. Я уменьшил количество столбцов в запросе здесь для простоты

Метод list () выполняет некоторую обработку возвращаемых результатов, что отнимает много времени. Кто-нибудь сталкивался с этой проблемой раньше? Любая помощь приветствуется.

Версия гибернации: 2.0, JDK - 1.8, DB - Oracle 11.2.0.4

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...