所以,这是一个我曾经遇到过几次的问题 - 我会不小心从一个巨大的数据库中做一个SELECT *。通常,我只是进入,获取查询的pid(SELECT * FROM pg_stat_activity),然后执行SELECT pg_cancel_backend(此处为PID),并且结束。但有时候 - 特别是对于最终会产生荒谬行数的查询 - 它只会返回:
db=# select pg_cancel_backend(5246);
pg_cancel_backend
-------------------
t
(1 row)
...而且查询继续存在!我该怎么杀这些东西?
答案 0 :(得分:0)
我会尝试pg_terminate_backend(pid);