PostgreSQL列举和停止执行中的sql


PostgreSQL列举正在执行中的sql

  1. SELECT  
  2.     procpid,  
  3.     start,  
  4.     now() - start AS lap,  
  5.     current_query  
  6. FROM  
  7.     (SELECT  
  8.         backendid,  
  9.         pg_stat_get_backend_pid(S.backendid) AS procpid,  
  10.         pg_stat_get_backend_activity_start(S.backendid) AS start,  
  11.         pg_stat_get_backend_activity(S.backendid) AS current_query  
  12.     FROM  
  13.         (SELECT pg_stat_get_backend_idset() AS backendid) AS S  
  14.     ) AS S  
  15. WHERE  
  16.     current_query <> '<IDLE>'  
  17. ORDER BY  
  18.     lap DESC;  

procpid:进程id
start:进程开始时间
lap:经过时间
current_query:执行中的sql

怎样停止正在执行的sql
SELECT pg_cancel_backend(进程id);

或者用系统函数

kill -9 进程id;

相关内容