gpt4 book ai didi

postgresql - Spring Boot 应用程序对 postgres 执行大量的 SET application_name 查询

转载 作者:行者123 更新时间:2023-12-04 12:57:36 25 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序 (v2.1.5),它使用 JPA (Hibernate) 连接到 Postgres DB。 Spring Boot 使用 HikariCP 进行连接池。
在我的生产环境中,无论数据库事件如何(几乎就像某种健康检查?),我都会看到以下查询每隔几秒钟执行一次:

SET application_name = 'PostgreSQL JDBC Driver'
我正在努力弄清楚为什么这些查询如此频繁地执行,以及是否可以避免它们,因为在我的本地环境中,上述语句仅在执行对数据库的查询时执行。我仍然不明白为什么,但与生产相比,它的频率较低且行为不同。
这些查询是必要的吗?它们可以避免吗?
谢谢。
更新:
这是 Spring boot 应用程序使用 HikariCP 连接到的数据库收到的查询的屏幕截图。时间显示为“Just now”,因为显示的所有查询仅相隔约 0.5 秒,并且都在“当前分钟”内。
enter image description here

最佳答案

这似乎是由 Hikari 连接池执行的。见 Default HikariCP connection pool starting Spring Boot application这是答案。
我不会理会它,因为它不会执行“非常多”的这些操作,而是每隔几秒钟执行一次,可能是在连接由池发出或返回到池时。
如果它真的困扰您,您可以查看各个地方以禁用它。
The last comment here建议设置连接属性 https://www.postgresql-archive.org/How-to-avoid-SET-application-name-td5875101.html到 9.0 或更高版本可能会有所帮助。
由于这可能是由 HikariConnectionPool 触发的,因此可以通过配置启动、借出和返回连接时的行为在那里进行配置。

关于postgresql - Spring Boot 应用程序对 postgres 执行大量的 SET application_name 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64650962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com