Java Spring Boot/Hibernate中的本机查询比外部执行慢得多

Java Spring Boot/Hibernate中的本机查询比外部执行慢得多,java,spring,hibernate,h2,Java,Spring,Hibernate,H2,我使用entityManager.createNativeQuery(sqlQuery).getResultList()执行多个查询,执行这些查询需要数十秒(最多几分钟)。我启用了Hibernate日志记录,并在IntelliJ中执行了与连接到同一数据库相同的SQL查询。查询在不到10毫秒的时间内返回 数据库是嵌入式H2,数据库驱动程序是相同的。查询不包含任何参数(这将消除)。它们只返回整数(ID和计数)。如果我在一行中执行两次查询,那么第二个查询几乎会立即返回。无论我向JVM分配128M还是2

我使用
entityManager.createNativeQuery(sqlQuery).getResultList()
执行多个查询,执行这些查询需要数十秒(最多几分钟)。我启用了Hibernate日志记录,并在IntelliJ中执行了与连接到同一数据库相同的SQL查询。查询在不到10毫秒的时间内返回

数据库是嵌入式H2,数据库驱动程序是相同的。查询不包含任何参数(这将消除)。它们只返回整数(ID和计数)。如果我在一行中执行两次查询,那么第二个查询几乎会立即返回。无论我向JVM分配128M还是2048M,查询执行时间都是相同的

这些查询看起来并不太复杂。我注意到的唯一一件事是,其中一些语句具有内部select语句,我在这些语句上加入了select语句或与之进行了比较。我想它们不是真正的问题,因为它们在没有从我的程序执行时可以很快执行

程序的其余部分工作正常,还有其他查询运行速度与预期一样快

这是一个示例查询:

SELECT
  USER_ID,
  count(result) AS count
FROM USERAPIACCESS
WHERE USER_ID IN (123)
      AND RESULT IN ('SUCCESSFUL')
GROUP BY USER_ID, RESULT
ORDER BY USER_ID, RESULT

这个表中有多少条记录?
我认为问题在于,这里没有分页,应用程序将获取此表中存在的所有记录。若只提取十行整数,那个又有什么关系呢?您确定只有十行提取表单数据库吗?