Statistics接口提供三种类别的统计信息:
Sesssion使用相关的,比如打开的会话数目,检索的JDBC连接数目。
实体,集合,查询和缓存相关的全局信息。
特定实体,集合,查询和缓存区域的详细信息。
具体细节可以参考Statistics, EntityStatistics, CollectionStatistics,
SecondLevelCacheStatistics和QueryStatistics的API文档,示例如下:
Statistics stats = HibernateUtil.sessionFactory.getStatistics();
double queryCacheHitCount = stats.getQueryCacheHitCount();
double queryCacheMissCount = stats.getQueryCacheMissCount();
double queryCacheHitRatio =
queryCacheHitCount / (queryCacheHitCount + queryCacheMissCount);
log.info("Query Hit ratio:" + queryCacheHitRatio);
EntityStatistics entityStats =
stats.getEntityStatistics( Cat.class.getName() );
long changes =
entityStats.getInsertCount()+entityStats.getUpdateCount()+entityStats.getDeleteCount();
log.info(Cat.class.getName() + " changed " + changes + "times" );