время выполнения запроса в режиме гибернации

Я искал настройки hibernate или log4j, чтобы показать мне, как долго выполняются запросы в hibernate, которые вызываются hql.

До сих пор я не нашел ничего интересного.

Может быть, некоторые из вас могут помочь мне с этим вопросом?

Ответы на вопрос(3)

Если вам нужно индивидуальное решение, вы можете использовать AOP и добавить совет вокруг класса сеанса гибернации, если вы выполняете собственные запросы.

Есть простой способ (встроенный вhibernate) чтобы достичь этого. Это было исправленоHHH-3659 в3.5.4 а также3.6.0.Beta1.

Чтобы пойти на это, используйте:

logging on the package: org.hibernate.stat at least on INFO and set hibernate property: hibernate.generate_statistics=true

После этого всеSQLs будет записано в журнал, включая количество выбранных строк и время выполнения запроса.

Более того, если интересно, он предоставляет статистику по запросам. Чтобы их выставили черезJMX и увидеть их, используяJConsole, ты можешь использоватьHibernate JConsole plugin, доступен на:http://hibernate-jcons.sourceforge.net/

 01 сент. 2013 г., 06:26
Привет, Питер, это сработало для меня, но мне пришлось изменить уровень log4j, чтобы отследить на org.hibernate.stat, чтобы это работало. Спасибо за ваше решение
 31 мар. 2017 г., 16:37
Я попробовал это, один недостаток в том, что он сообщает статистику в конце сессии. Если вы делаете много вещей за один сеанс, вы не можете определить эффективность каждого из них. Например, «1436424992 наносекунды потрачено на выполнение 14 операторов JDBC»;
 20 июл. 2017 г., 20:41
Он показывает HQL, а не SQL. Есть ли способ изменить это?
 18 окт. 2016 г., 14:52
Он работает для запросов JDBC, отправленных org.hibernate.loader.Loader, но не для запросов, отправляемых org.hibernate.jdbc.AbstractBatcher (отложенная загрузка). Самым простым решением было настроить регистрацию в DEBUG для & quot; org.hibernate. * & Quot; и посмотреть, какой запрос выполняется в какой момент времени.
 09 нояб. 2015 г., 23:26
Это сработало для меня! В logback.xml: & lt; имя логгера = & quot; org.hibernate.stat & quot; Уровень = & Quot; INFO & Quot; / & GT; В hibernate.properties: hibernate.generate_statistics = true

Чтобы зарегистрировать запросы со временем их выполнения в лог-файл, вы можете попробоватьМастер Шпион JDBC Водитель которые делают точно такие же вещи и имеет простойинтеграция с Spring.

Другой способ заключается в использованииSpring Insight который показывает вызовы JDBC / Hibernate и многое другое.

Ссылки по теме:

How to install Spring Insight How to setup filters

Ваш ответ на вопрос