Я искал установку hibernate или log4j, чтобы показать мне, как долго выполняются запросы в спящем режиме, которые вызываются hql.
До сих пор я не нашел ничего интересного.
Возможно, некоторые из вас могут помочь мне в этой проблеме?
Ответ 1
Существует простой способ (встроенный hibernate) для его достижения. Он был исправлен HHH-3659 в 3.5.4 и 3.6.0.Beta1.
Для этого используйте:
запись в пакет: org.hibernate.stat по крайней мере на INFO и
установить свойство hibernate: hibernate.generate_statistics=true
После этого будет записываться все SQL, включая подсчет строк и время выполнения запроса.
Кроме того, если он заинтересован, он предоставляет статистику по запросам. Чтобы их просмотреть с помощью JMX и посмотреть их с помощью JConsole, вы можете использовать Hibernate JConsole plugin, доступный по адресу: http://hibernate-jcons.sourceforge.net/
Ответ 2
Чтобы регистрировать запросы со своим временем выполнения в файле журнала, вы можете попробовать Craftsman Spy JDBC Driver, которые выполняют точно такие же вещи и имеют простой интеграция с Spring.
Другим способом является использование Spring Insight, в котором отображаются вызовы JDBC/Hibernate и многое другое.
Если вы хотите создать собственное решение, вы можете использовать AOP и добавлять вокруг совета по классу сессии hibernate, если вы выполняете собственные запросы.