jboss 如何访问Hibernate统计信息

mlnl4t2r  于 2022-11-08  发布在  其他
关注(0)|答案(5)|浏览(136)

所以在我的persistence.xml中,我打开了hibernate.generate_statistics

<property name="hibernate.generate_statistics">true</property>

我的问题是我如何访问它们?统计数据去哪里了?

tv6aics1

tv6aics11#

在你的道务中你可以去:

Session session = this.sessionFactory.getCurrentSession();
SessionStatistics sessionStats = session.getStatistics();
Statistics stats = this.sessionFactory.getStatistics();
sf6xfgos

sf6xfgos2#

我宁愿使用Hibernate Statistics published via JMX,如果你使用spring,你可以用Hibernate Statistics MBean with Spring让它变得真实的容易

b91juud3

b91juud33#

有多种方法可以访问Hibernate统计信息:

编程

如果要在应用程序中获取Statistics对象,可以按如下方式执行:

Session session = entityManager.unwrap(Session.class);

Statistics statistics = session.getSessionFactory().getStatistics();

记录

如果要记录Statistics报告,则需要添加以下日志配置条目:

<logger name="org.hibernate.engine.internal.StatisticalLoggingSessionEventListener" level="info"/>

JMX

您还可以通过设置hibernate.jmx.enabled属性,通过JMX公开Statistics对象。
为此,您需要设置以下配置属性:

<property name="hibernate.jmx.enabled" value="true"/>

然后在JMX客户端应用程序中找到org.hibernate.core MBean包。

qltillow

qltillow4#

您也可以为其添加记录器。请参见; 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>
fwzugrvs

fwzugrvs5#

在我们的应用程序中,我们通过JMX发布了它,为了使它完整,我们需要手动add the criteria query data using aspects

相关问题