PostgreSQL 実行中のSQLを止める方法
PostgreSQLで誤って、ものすごく負荷のかかるSQLを実行してしまったとき、
そのプロセスを止める(殺す・kill)方法。
プロセスIDを調べる
SELECT procpid, start, now() - start AS lap, current_query FROM (SELECT backendid, pg_stat_get_backend_pid(S.backendid) AS procpid, pg_stat_get_backend_activity_start(S.backendid) AS start, pg_stat_get_backend_activity(S.backendid) AS current_query FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS S ) AS S WHERE current_query <> '' ORDER BY lap DESC;
current_queryに実行中のSQLが表示されるので、そのprocpidがプロセスID
プロセスIDを指定して、プロセスを停止
SELECT pg_cancel_backend(プロセスID);