首页 > 解决方案 > Hibernate - 如何减少准备语句所花费的时间

问题描述

我已经使用 - 启用了我的休眠统计信息spring.jpa.properties.hibernate.generate_statistics=true。现在在调试控制台中,我可以看到如下消息:

  29721 nanoseconds spent acquiring 1 JDBC connections;
  34228 nanoseconds spent releasing 1 JDBC connections;
  1465946 nanoseconds spent preparing 17 JDBC statements;
  92174245 nanoseconds spent executing 17 JDBC statements;

我正在尝试微调所消耗的整个时间。

问题:我有什么选择或可以做些什么来减少/消除每次在同一组查询上浪费的时间 - 1465946 nanoseconds spent preparing

标签: spring-boothibernate

解决方案


除了尝试减少 JDBC 语句的数量之外,您实际上什么也做不了。这可以通过进行二级缓存或使用获取连接或实体图通过连接而不是通过专用的选择语句来急切地加载一些数据来完成。在不确切知道您的应用程序在做什么的情况下,这是不可能的。无论如何,与执行所有这些语句所需的 92 毫秒相比,1.4 毫秒并不算多。IMO 您应该尝试通过引入适当的索引或任何适合您的查询来提高性能来减少执行时间。


推荐阅读