我有一个NativeQuery
,它复制大约1000行(选择和插入,其中某些列已更改)。
问题在于,executeUpdate
有时(大约运行次数的1/3)需要50毫秒,而有时(运行次数的2/3)则需要1500毫秒。
同一查询在请求期间运行多次。通常,所有这些运行都是缓慢的或快速的。
所有请求均从相同的数据库状态开始(即,选择并插入了完全相同的记录)。目前,数据库和Tomcat都没有其他用户。有时它连续慢5倍,有时它连续快5倍,有时它慢,快,慢,快。
我尝试重新启动Tomcat和Postgres。重启后有时会很慢,有时会很快。我尝试在请求的开头添加System.gc()
,但随机性仍然存在。
当我直接尝试同一查询(通过dBeaver / JDBC)时,它总是很快。
我的环境:
有什么想法可以调试这种情况吗?