Java JPA本机查询非常慢

Java JPA本机查询非常慢,java,hibernate,spring-boot,spring-data-jpa,jpql,Java,Hibernate,Spring Boot,Spring Data Jpa,Jpql,在JPA中,表之间存在父子关系。我必须根据子表中的条件获取父表记录。所以我 String LOOKUPQUERY=select*from ParentEntity p where p.status\u id in select st.id from status st where st.status='required'order by created desc; @Queryvalue=LOOKUPQUERY,nativeQuery=true 需要查找的列表 这需要18秒。如果我在db上运行相

在JPA中,表之间存在父子关系。我必须根据子表中的条件获取父表记录。所以我 String LOOKUPQUERY=select*from ParentEntity p where p.status\u id in select st.id from status st where st.status='required'order by created desc; @Queryvalue=LOOKUPQUERY,nativeQuery=true 需要查找的列表


这需要18秒。如果我在db上运行相同的程序,则不到一秒钟。关于优化此功能有何建议?

如果数据库支持某种解释功能或类似的查询分析工具,我会花一些时间使用它。您是否尝试使用JOIN而不是IN?并检查了表的索引?您正在比较苹果和橙子。仅执行查询可能很快,但是通过hibernate执行查询会增加对象转换、验证等。因此,将普通SQL执行与hibernate中发生的所有事情进行比较是不公平的。还有,为什么不写一个JPQL,让hibernate来处理实际的SQL呢?意识到我们使用的是一个共享数据库,这导致了间歇性的减速。谢谢你的回复