Как настроить производительность hsqldb/hibernate приложения

или вы можете сохранить сообщение в сеансе, а затем на странице перенаправления сказать

if(isset(

или вы можете сохранить сообщение в сеансе, а затем на странице перенаправления сказать

[110]

не забудьте сбросить его, когда вы закончите

SESSION['message'])) echo

или вы можете сохранить сообщение в сеансе, а затем на странице перенаправления сказать

[110]

не забудьте сбросить его, когда вы закончите

SESSION['message']

не забудьте сбросить его, когда вы закончите

5
задан PanCrit 24 April 2009 в 21:33
поделиться

5 ответов

Unfortunately, as far as I know, there is no tool for that.

But there are some things you might want to check:

  • Are you using eager loading instead of lazy loading? By the description of your problem, it really looks like you are not using lazy loading...
  • Have you turned on and properly configured your second-level caching? Including the Query Cache? Hibernate caching mechanism is extremely powerful and flexible.
  • Have you consider using Hibernate Search? Depending on your query, Hibernate Search Full Text index on top of Apache Lucene can speed up you queries (since it indexing system is so powerful)
3
ответ дан 15 December 2019 в 06:35
поделиться

Сколько данных вы храните в HSQLDB? Я не думаю, что он хорошо работает при управлении большими наборами данных, поскольку он просто хранит все в файлах ...

0
ответ дан 15 December 2019 в 06:35
поделиться

Когда-то был инструмент под названием IronGrid / IronEye / IronTrackSql, который сделал именно то, что вы ищете. К сожалению, они ушли из бизнеса. Они открыли исходный код своего продукта в последнюю минуту, но я не мог найти источник или двоичный файл в течение достаточно долгого времени.

Я использовал YourKit для профилирования в последнее время, отчасти потому, что вы можете настроить его на время SQL, чтобы найти ваши наиболее вызываемые операторы и операторы с наибольшей продолжительностью. Это не так подробно, как IronGrid, но дает ценную информацию. В моем последнем сеансе настройки базы данных / гибернации проблема оказалась в спящем режиме, а также в том, как и когда она выполняла загрузку по сравнению с отложенной загрузкой и добавлением некоторых разумных переопределений по умолчанию при выборе большого количества элементов.

0
ответ дан 15 December 2019 в 06:35
поделиться

Здесь можно публиковать отчеты. У меня есть некоторые результаты, и я все еще ищу хорошие ответы.

Я нашел несколько инструментов, которые помогают:

VisualVM BTrace или встроенной трассировкой) утверждает, что помогает с трассировкой, но мне не удалось найти какой-либо инструмент, который показывает время при вызовах методов.

YourKit считается полезным; Я попросил лицензию с открытым исходным кодом.

Самая полезная вещь, которую я нашел, - встроенная статистика Hibernate. Если вы установите hibernate.generate_statistics true в своих свойствах вы можете отправить sessionFactory.getStatistics () и просмотреть подробную статистику о том, какие объекты были сохранены и извлечены и что влияет на кэши. Я нашел один из ответов, которые мне нужны, в qeuryStatistics, который сообщает для каждого скомпилированного запроса, попадания и пропадания кэша, количество выполнений запроса, сколько строк было возвращено, а также среднее, максимальное и минимальное время выполнения. Эти сроки совершенно ясно показали, куда идет время.

Затем я прочел кое-что о кешировании. Предложение Разенхи было правильным. [Сейчас я отмечу его ответ как правильный.] Я добавил hibernate.cache.use_query_cache true в мои свойства и добавил query.setCacheable (true); в большинство моих запросы. Я также добавил в несколько моих файлов .hbm.xml. Сейчас большая часть моей статистики показывает значительное преобладание обращений к кешу, а производительность значительно выше.

Мне бы все еще хотелось, чтобы некоторые инструменты помогли мне отследить время выполнения, чтобы я мог атаковать не самые очевидные, а самые серьезные проблемы, но это большая помощь. Возможно, один из приведенных выше инструментов трассировки окажется полезным.

0
ответ дан 15 December 2019 в 06:35
поделиться

В Terracotta 3.1 вы можете отслеживать всю эту статистику в реальном времени с помощью Terracotta Developer Console. Вы можете просматривать исторические графики для статистики кэша, а также видеть статистику спящего режима или статистику кеширования в масштабе кластера или для каждого узла.

Terracotta - это открытый исходный код. Более подробная информация и загрузка находятся на Terracotta for Hibernate .

0
ответ дан 15 December 2019 в 06:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: