我在Swing应用程序中使用Hibernate 3.3。我想检索执行的交易中的一些统计信息,并将这些信息提供给我的观点。例如:获取休眠事务状态
- 执行时间
- 行数触及
- 类型的交易(更新,删除,创建,选择等)
我有几个辅助类。我正在考虑使用诸如executionTime,noRows,transactionStatus等公共字段并将它们填充到finalize()方法中。
Hibernate是否提供了访问这种数据的方法?
我在Swing应用程序中使用Hibernate 3.3。我想检索执行的交易中的一些统计信息,并将这些信息提供给我的观点。例如:获取休眠事务状态
我有几个辅助类。我正在考虑使用诸如executionTime,noRows,transactionStatus等公共字段并将它们填充到finalize()方法中。
Hibernate是否提供了访问这种数据的方法?
是的,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以提供统计信息。
谢谢,但我似乎无法找到获取总交易执行时间的方法。 – matiasf 2010-02-14 13:32:41