PostgreSQL JDBC查询速度慢,直接在数据库上快速

时间:2017-12-13 16:26:53

标签: java database postgresql jdbc

我对Spring JDBC有一个有趣的问题。我有一个简单的SELECT查询,它只是通过标识符从数据库中选择一行。当我通过PgAdmin raw在数据库上运行此查询时,它返回大约500毫秒。当我通过我的Java堆栈运行它需要整整20 ,并且在后续运行中它不会变得更快。

这是我的代码的最后一层:

return jdbcTemplate.queryForObject(QUERY_SINGLE_COMPONENT, queryArguments, new ComponentRowMapper());

(我的jdbcTemplate是一个NamedParameterJdbcTemplate)。我在执行期间在代码上运行了VisualVM:

jvisualvm profile

PostgreSQL驱动程序readMore基本上都在使用。我使用的是PostgreSQL驱动程序42.0.0,但我尝试更新到最新版本但没有帮助。

同一查询中的其他ID返回正常,我通过相同代码库进行的其他查询工作正常。它让我疯狂了好几天,并会感激任何见解!

编辑:我设法将问题隔离到我们的架构搜索路径。我们使用测试模式来进行数据库更改。当测试在模式搜索路径中时,它很慢,当删除测试时它很快。在这两种情况下,它仍然比我在PgAdmin中运行一个数量级时慢。

0 个答案:

没有答案