我有一个简单的查询:
SELECT a.name AS a_name,
b.description AS b_description
FROM a
JOIN b ON a.id = b.a_id
WHERE b.table_name IS NULL;
Run Code Online (Sandbox Code Playgroud)
(为保护无辜者,化名)
这通常需要大约 3 毫秒才能运行。有时,此查询会挂起。目前已经挂了3天了。幸运的是,我可以暂时尝试在当前状态下对其进行调试。看起来没有任何东西阻止它(通过查询 pg_locks 和 pg_stat_activity 发现),尽管它阻止了其他事情。
即使其他查询处于挂起状态,我也可以再次运行相同的查询,并且它在预期的时间段内成功完成。
可能涉及的事情:我们目前有两个转储数据库的 cron 作业(不要问)。如果可能相关,我可以找到正在运行的确切命令。
任何有关如何调试此问题的建议都将不胜感激!