hibernate显示查询执行时间

时间:2012-09-29 20:59:42

标签: hibernate

我正在寻找设置hibernate或log4j来告诉我,在hibernate中执行查询需要多长时间,这些查询是由hql调用的。

直到现在我没有发现任何有趣的东西。

也许有些人可能会帮我解决这个问题?

3 个答案:

答案 0 :(得分:27)

有一种简单的方法(内置hibernate)来实现它。它由3.5.43.6.0.Beta1中的HHH-3659修正。

要使用它,请使用:

  • 至少在org.hibernate.stat
  • 上登录软件包:INFO
  • 设置hibernate属性:hibernate.generate_statistics=true

之后将记录所有SQL s,包括提取的行数和执行查询的时间。

此外,如果有兴趣,它会提供有关查询的统计信息。要通过JMX展示它们并使用JConsole查看它们,您可以使用Hibernate JConsole plugin,可在http://hibernate-jcons.sourceforge.net/

上找到

答案 1 :(得分:4)

要将查询及其执行时间记录到日志文件中,您可以尝试Craftsman Spy JDBC Driver执行完全相同的操作并使用简单的integration with Spring

另一种方法是使用显示JDBC / Hibernate调用的Spring Insight以及更多细节。

相关链接:

答案 2 :(得分:2)

如果你想要一个自定义解决方案,你可以使用AOP并在执行本机查询时围绕hibernate会话类添加一个建议。