Я пытаюсь понять, почему время выполнения моей хранимой процедуры намного выше, когда я запускаю ее из Java с помощью Hibernate, чем когда я запускаю ее непосредственно в MySQL.
Ответственность за хранимую процедуру несет самадля перемещения 20000 строк из таблицы A в таблицу B, а затем удалить их в таблице A.
Выполнение хранимой процедуры в MySQL занимает около 18 секунд.
В Java я использую Hibernate исоздать запрос:
Query query =
mainSession
.createSQLQuery("{CALL my_stored_procedure(:maxResultSize)}")
.setParameter("maxResultSize", maxResultSize);
Затем запрос выполняется, а сеанс сбрасывается и очищается:
List<BigInteger> rows = query.list();
mainSession.flush();
mainSession.clear();
Это занимает около 248 секунд.
Кто-нибудь знаетпочему для вызова хранимой процедуры из Java с помощью Hibernate требуется гораздо больше времени?
Какой подход следует использовать для повышения производительности?