select * from pg_stat_activity where current_query !='<IDLE>'我用这个SQL查询当前有哪些活动的进程,
我现在目的是查出SQL执行超过2个小时的进程,然后把它杀掉,通过SQL命令怎么删除啊?有谁知道,谢谢。
我用kill pid这条命令不起作用。急啊。谢谢

解决方案 »

  1.   

    以前是有个SQL语句为pg_terminate_query,后来发现有BUG,这个命令被禁用了,恐怕要等到8.4版本才OK如果在linux下,可用kill -s SIGTERM pid 或kill s -15 pid, 不过要保证其在IDLE下。
      

  2.   

    SQL 语句暂时还不知道
    利用操作系统来结束吧。
    WINDOWS
    tasklist | find "post" | taskkill pid
    LINUX
    ps aux | grep 'post'|kill -9 pid
      

  3.   

    我已经知道了,先用pg_stat_activity函数查出所有的活动进程,然后pg_cancel_backend函数取消所要杀的进程,谢谢大家关注。