如何计算使用 Hibernate 对 H2 数据库进行的 SQL 查询的数量
Posted
技术标签:
【中文标题】如何计算使用 Hibernate 对 H2 数据库进行的 SQL 查询的数量【英文标题】:How do I count the number of SQL queries made to a H2 database using Hibernate 【发布时间】:2018-10-16 14:33:06 【问题描述】:如何计算使用 Hibernate (4.3.11) 对 H2 (1.3.172) 数据库进行的 SQL 查询数。
我只需要一个长时间运行的任务(几个小时)结束时的总计数,我不需要跟踪实际查询本身。
有没有一种简单的方法可以做到这一点,理论上我可以用 Hibernate 或 H2 做,但我找不到解决方案。
【问题讨论】:
【参考方案1】:这篇文章应该可以帮到你。
https://www.thoughts-on-java.org/hibernate-tips-count-executed-queries-session/
总之,您首先需要将此属性添加到您的配置中。
<property name="hibernate.generate_statistics" value="true" />
然后,您必须在 DAO 中添加以下行。
Statistics stats = sessionFactory.getStatistics();
long queryCount = stats.getQueryExecutionCount();
希望对你有帮助。
【讨论】:
你知道如果你一直启用会不会有很大的性能损失? 到目前为止,我只在小查询中使用过,影响不明显。不过,我不确定在大查询中是否是这种情况。以上是关于如何计算使用 Hibernate 对 H2 数据库进行的 SQL 查询的数量的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Hibernate 和 H2 数据库自动生成主键 [重复]
如何避免“无法确定数据库名称 [H2] 的 Hibernate 方言!”?