postgresql Postgres -编辑当前运行的查询

nkhmeac6  于 2023-03-01  发布在  PostgreSQL
关注(0)|答案(1)|浏览(159)

在postgresql中是否可以编辑当前正在运行的查询。或者终止该查询并在其位置激发另一个查询。
我有一个程序的更新程序的问题。一个由生产者创建的查询是糟糕的优化。

6pp0gazn

6pp0gazn1#

不能修改当前正在运行的查询,但可以终止它。在启动查询的会话中,可以发送取消请求。在另一个数据库会话中,可以查询视图pg_stat_activity,以查找运行有问题的查询的数据库后端的pid(进程ID)。然后,使用获得的数字,可以使用以下命令中断查询

SELECT pg_cancel_backend(12345);

请注意,要查看pg_stat_activity中的条目或取消查询,您必须是运行查询的数据库用户。或者,您必须是具有高权限的数据库用户(超级用户或pg_read_all_statspg_signal_backend的成员)。
您所能做的最好的事情是通过设置statement_timeout参数从一开始就防止问题发生,然后运行时间超过该限制的查询将被自动取消。

相关问题