我正在寻找设置hibernate或log4j来告诉我,在hibernate中执行查询需要多长时间,这些查询是由hql调用的。
直到现在我没有发现任何有趣的东西。
也许有些人可能会帮我解决这个问题?
答案 0 :(得分:27)
有一种简单的方法(内置hibernate
)来实现它。它由3.5.4
和3.6.0.Beta1
中的HHH-3659修正。
要使用它,请使用:
org.hibernate.stat
和INFO
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会话类添加一个建议。