ITPub博客

首页 > 大数据 > 数据挖掘 > 【Gp】PostgreSql中如何kill掉正在执行的sql语句

【Gp】PostgreSql中如何kill掉正在执行的sql语句

原创 数据挖掘 作者:小亮520cl 时间:2017-07-10 11:23:22 0 删除 编辑

虽然可以使用 kill -9 来强制删除用户进程,但是不建议这么去做。

因为:对于执行update的语句来说,kill掉进程,可能会导致Postgres进入到recovery mode

而在recovery mode下,会锁表,不允许链接数据库。


通常情况下:使用如下语句

=# select datname,procpid,query_start,current_query,waiting,client_addr from pg_stat_activity where waiting='t';


来查看有哪些SQL正在执行。


通过命令:

=# select pg_cancel_backend(线程id);

来kill掉指定的SQL语句。

(这个函数只能 kill  Select 查询,而updae,delete DML不生效)


使用

=# select  pg_terminate_backend(pid int)

可以kill 各种DML(SELECT,UPDATE,DELETE,DROP)操作

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29096438/viewspace-2141808/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
毕业以后专业任职数据库工程师职位,itpub一直作为自己的笔记记录的地方,blog写的不详细,草书笔记,仅供参考!

注册时间:2013-09-12

  • 博文量
    529
  • 访问量
    1126951