2
有没有什么方法可以统计Hibernate在事务或线程内部完成的查询数?我研究了Hibernate拦截器,但是我不知道应该重写哪些API来增加计数器。我的目标是在某个请求的查询计数超过某个阈值时通知我,以便我可以根据需要对其进行优化。休眠查询计数
感谢,
山姆
有没有什么方法可以统计Hibernate在事务或线程内部完成的查询数?我研究了Hibernate拦截器,但是我不知道应该重写哪些API来增加计数器。我的目标是在某个请求的查询计数超过某个阈值时通知我,以便我可以根据需要对其进行优化。休眠查询计数
感谢,
山姆
本文帮助您?
http://www.javalobby.org/java/forums/t19807.html
你可以这样做:
SessionFactory sessionFactory = getSessionFactoryForApplication();
Statistics stats = sessionFactory.getStatistics();
stats.setStatisticsEnabled(true);
// All of the queries that have executed.
String[] queries = stats.getQueries();
等等......
说10的请求都来在了一起,在自己的事务或线程每个运行。我可以告诉每个请求的查询计数吗?或者他们都混在一起? – 2012-04-03 00:39:43
它们全部混合在一起[SessionFactory](http://docs.jboss.org/hibernate/core/3.5/api/org/hibernate/SessionFactory.html#getStatistics())(通常你只有一个每个应用程序)。你应该探索统计API有一个名为getQueryStatistics(String queryString)的方法可能是你想要的。 – MrJames 2012-04-03 00:51:02