Hibernate см медленный запрос - PullRequest
3 голосов
/ 28 июля 2010

внутри hibernate.property. это какой-либо параметр, который я могу установить, чтобы увидеть все медленные запросы, которые требуют слишком много времени, чтобы вернуть результат? я использую spring-hibernate applicationContext.xml

Ответы [ 2 ]

4 голосов
/ 28 июля 2010

У меня есть 2 предложения:

  • вы можете использовать Oracle Statspack.
  • вы можете использовать какое-то время выполнения ведения журнала драйвера прокси-сервера JDBC P6Spy или log4jdbc .

В прошлом я использовал P6Spy и IronTrack SQL от IronGrid, и это была неплохая комбинация (см. это сообщение в блоге ).Но учтите, что:

  • P6Spy на самом деле не поддерживается (5 лет без изменений).
  • Меры были не совсем точными (это не большая проблема при погоне за жадными свиньями).
  • IronTrack SQL, похоже, больше не доступен (но вы все равно можете его найти, например здесь ).

Я лично сейчас использую log4jdbc , который предоставляет аналогичные функции (без красивого графического интерфейса, но кого это волнует, используйте Excel или сценарий, который они предоставляют для создания отчета).С веб-сайта:

Функции

  • Полная поддержка JDBC 3 и JDBC 4!
  • Простота настройки, в большинстве случаев все, что вам нужно сделатьизмените имя класса драйвера на net.sf.log4jdbc.DriverSpy и добавьте «jdbc: log4» к существующему URL-адресу jdbc, настройте категории журналирования, и вы готовы к работе!
  • В зарегистрированном выводедля подготовленных операторов аргументы связывания автоматически вставляются в вывод SQL.Это значительно улучшает удобочитаемость и отладку во многих случаях.
  • Может быть сгенерирована информация о синхронизации SQL, чтобы помочь определить, сколько времени занимает выполнение операторов SQL, помогая идентифицировать операторы, которые выполняются слишком медленно, и эти данные могут бытьпост-обработка с помощью включенного инструмента для создания данных отчета профилирования для быстрой идентификации медленного SQL в вашем приложении .
  • Информация о номере соединения SQL генерируется, чтобы помочь выявить проблемы с пулами соединений или многопоточностью.
  • Работает с любым базовым драйвером JDBC, с JDK 1.4 и выше, и SLF4J 1.x.
  • Программное обеспечение с открытым исходным кодом, лицензируемое по лицензии Apache 2.0 для бизнеса: http://www.apache.org/licenses/LICENSE-2.0
2 голосов
/ 28 июля 2010

Вы можете включить ведение журнала всего SQL в hibernate, установив для свойства hibernate.show_sql значение true (см. http://www.javalobby.org/java/forums/t44119.html).. Однако нет способа фильтрации, чтобы видеть только медленные запросы. Однако, если вы используете mysqlвы можете включить его медленный журнал запросов и видеть запросы, которые работают медленнее, чем установленный порог.

См .: http://adminlinux.blogspot.com/2009/07/mysql-slow-queries-log.html

Я уверен, что большинство других баз данных будут предлагать аналогичную функцию.

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