我有一个Spring Boot应用程序(V2.1.5),它使用JPA(Hibernate)连接到Postgres DB。Spring Boot使用HikariCP进行连接池。在我的生产环境中,我看到以下查询每隔几秒钟执行一次,而不管DB活动如何(几乎就像它们是某种健康检查?):
SET application_name = 'PostgreSQL JDBC Driver'
我很难弄清楚为什么这些查询执行得如此频繁,以及它们是否可以避免,因为在我的本地环境中,上面的语句只有在对DB执行查询时才会执行。我仍然不明白为什么,但与生产相比,这是不太频繁和不同的行为。
更新:
下面是Spring boot应用程序使用Hikaricp连接的数据库收到的查询截图。时间显示为“Just Now”,因为所有显示的查询间隔只有0.5秒,并且都在“Current Minute”内。
这似乎是由Hikari连接池执行的。请参见默认的HikariCP连接池启动Spring引导应用程序及其答案。
我不会为此费心,因为它不会执行“非常多的”这些操作,而是每隔几秒钟执行一次,可能是在连接由池传递或返回池的时候。
如果它真的困扰你,你可以寻找不同的地方禁用它。
这里的最后一个注释建议将连接属性https://www.postgreSQL-archive.org/how-to-avid-set-application-name-td5875101.html
设置为9.0或更高版本可能会有所帮助。
因为这可能是由HikariConnectionPool触发的,所以可以在那里通过配置启动、借出和返回连接时的行为来进行配置。
我试图在SpringMVC中运行SpringBoot应用程序,在SpringMVCPOM中添加SpringBoot应用程序依赖项,并扫描SpringBoot包,但我面临以下问题
问题内容: 我正在使用psql在Postgres中查询数据库。我使用以下查询来搜索一个名为 tag 的字段,该字段的数据类型为文本数组: 现在,我需要创建一个查询,以在 标签 字段中搜索以字母“ A”开头的任何单词。我尝试了以下方法: 这给了我一个语法错误。关于如何将LIKE与文本数组结合使用的任何建议? 问题答案: 使用函数将数组转换为行集: 本应算唯一条目表,只需更换你的主键的名称。 话虽这么
我搜索了关于测量Java应用程序执行时间的信息,得到了以下代码: 开始和停止之间的差异给了我执行时间。 注意:我知道这不是确切的执行时间。我只是需要多线程和单线程应用程序之间的比较的时间。 如果我这样更改代码会怎样: 执行10个线程。不管他们做什么。假设他们随机填充一个二维数组。 现在,stop-start给了我“全部”执行时间?或者我必须自己测量线程吗?
我想在应用程序运行时找到我的对象大小。我想用千分尺在Grafana中显示我的对象大小。 我的对象像人、学生、...... 我该怎么办? 对象大小像文件大小、对象体积
问题内容: 有没有一种简单的方法可以测量由JDBC执行的所有sql语句的执行时间,并将结果打印到输出中? 有人可能建议我使用AOP来做到这一点,但我尝试尽可能避免这种情况。还有另一种方法吗? 问题答案: 如果不在提供数据源的应用程序服务器中运行该应用程序,则将发现log4jdbc项目很有用。项目提供的记录器将允许您记录所执行的SQL语句的执行情况。 通过将从DataSource返回的连接包装在Co