如何在spring-boot/postgresql应用程序中检查长运行查询



我有一个带有Hibernate的Spring启动应用程序,连接到PostgreSQL数据库。一段时间后,一些用户会遇到请求缓慢或请求没有任何响应的问题。

我怀疑一些长时间运行的SQL查询,但如何检查哪些查询长时间运行?我想记录查询的执行时间。我知道Hibernate的show-sql参数,但它不显示SQL语句的参数,也不记录执行时间。还有其他方法可以做到这一点吗?

您可以通过设置属性在hibernate中记录慢速查询:

spring.jpa.properties.hibernate.session.events.log.LOG_QUERIES_SLOWER_THAN_MS=100

此外,如果您想用参数记录SQL语句,可以使用:

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE

最新更新