Да, Hibernate предоставляет живую статистику. Пример использования из книги Hibernate:
Statistics stats = HibernateUtil.getSessionFactory().getStatistics();
stats.setStatisticsEnabled(true);
...
stats.getSessionOpenCount();
stats.logSummary();
EntityStatistics itemStats = stats.getEntityStatistics("auction.model.Item");
itemStats.getFetchCount();
Интерфейсы статистики: Statistics
для глобальной информации, EntityStatistics
для информации о конкретной сущности, CollectionStatistics
для конкретной роли сбора, QueryStatistics
для запросов SQL и HQL и SecondLevelCacheStatistics
для подробной информации времени выполнения о конкретной области в дополнительном кеше данных второго уровня. Удобный метод - logSummary()
, который выводит полное резюме на консоль за один вызов. Если вы хотите включить сбор статистики через конфигурацию, а не программно, установите для свойства конфигурации hibernate.generate_statistics
значение true. См. Документацию API для получения дополнительной информации о различных методах получения статистики.
Если вы работаете на сервере приложений, вы также можете настроить JMX для предоставления вам статистики.