所以在persistence.xml
我打开了hibernate.generate_statistics
。
<property name="hibernate.generate_statistics">true</property>
我的问题是如何访问它们?统计数据在哪里?
答案 0 :(得分:20)
在你的dao服务中,你可以去:
Session session = this.sessionFactory.getCurrentSession();
SessionStatistics sessionStats = session.getStatistics();
Statistics stats = this.sessionFactory.getStatistics();
答案 1 :(得分:12)
我宁愿使用Hibernate Statistics published via JMX如果您使用弹簧,也可以通过Hibernate Statistics MBean with Spring
轻松实现答案 2 :(得分:2)
在我们的应用程序中,我们通过JMX发布它并使其完整,我们可以手动add the criteria query data using aspects
答案 3 :(得分:2)
您还可以为其添加记录器。 看到; http://www.thoughts-on-java.org/how-to-activate-hibernate-statistics-to-analyze-performance-issues/
<!--Hibernate Statistics-->
<logger category="org.hibernate.stat" use-parent-handlers="true">
<level name="DEBUG"/>
</logger>
答案 4 :(得分:1)
您可以通过多种方式访问休眠统计信息:
如果要在应用程序中获取Statistics
对象,可以按以下步骤进行操作:
Session session = entityManager.unwrap(Session.class);
Statistics statistics = session.getSessionFactory().getStatistics();
如果要记录Statistics
报告,则需要添加以下日志配置条目:
<logger name="org.hibernate.engine.internal.StatisticalLoggingSessionEventListener" level="info"/>
您还可以通过JMX公开Statistics
对象,如this article中所述。
为此,您需要设置以下配置属性:
<property name="hibernate.jmx.enabled" value="true"/>
并在JMX客户端应用程序中找到org.hibernate.core
MBean软件包。
如果您想更好地了解Hibernate支持的指标,请查看this article。