Oui, Hibernate fournit des statistiques en direct. Exemple d'utilisation du livre Hibernate:
Statistics stats = HibernateUtil.getSessionFactory().getStatistics();
stats.setStatisticsEnabled(true);
...
stats.getSessionOpenCount();
stats.logSummary();
EntityStatistics itemStats = stats.getEntityStatistics("auction.model.Item");
itemStats.getFetchCount();
Les statistiques interfaces sont Statistics
pour l'information mondiale, EntityStatistics
des informations sur une entité particulière, CollectionStatistics
pour un rôle de collection, QueryStatistics
pour les requêtes SQL et HQL et SecondLevelCacheStatistics
pour l'exécution détaillée des informations sur une région particulière dans le cache de données de second niveau facultatif. Une méthode pratique est logSummary()
, qui imprime un résumé complet à la console avec un seul appel. Si vous souhaitez activer la collecte de statistiques via la configuration et non par programmation, définissez la propriété de configuration hibernate.generate_statistics
sur true. Voir la documentation API pour plus d'informations sur les différentes méthodes de récupération de statistiques.
Si vous utilisez un serveur d'applications, vous pouvez également configurer JMX pour qu'il vous fournisse des statistiques.
Merci, mais je n'arrive pas à trouver une méthode pour obtenir le temps d'exécution total de la transaction. – matiasf