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