我有一个NativeQuery
复制大约 1000 行(选择和插入更改了一些列)。
问题是有时(大约 1/3 的运行)executeUpdate
需要 50 毫秒,有时(2/3 的运行)需要 1500 毫秒。
在请求期间多次运行相同的查询。通常所有这些运行都很慢或都很快。
所有请求都是从相同的数据库状态开始的(即选择并插入完全相同的记录)。此时,数据库和 Tomcat 都没有其他用户。有时慢到连续5次,有时快到连续5次,有时慢,快,慢,快。
我尝试重新启动 Tomcat 和 Postgres。重启后有时会很慢,有时会很快。我尝试添加System.gc()
到请求的开头,但随机性仍然存在。
当我直接尝试相同的查询(通过dBeaver/JDBC)时,它总是很快。
我的环境:
- 雄猫 8.5.33
- Eclipse 链接 2.6.4
- PostgreSQL 9.6.11
- Ubuntu 18.04
任何想法如何调试这种情况?