Postgres:监控长查询的执行计划的哪个部分正在运行。

问题描述 投票:0回答:1

中的信息 pg_stat_activity 是那种稀缺的,对于长时间的查询,并不能给出进度信息。

这些信息可以在 v$session_longops 在Oracle中,它给出了正在处理的对象(target),它需要经过的项目数量(totalwork),以及目前已完成的项目数(sofar). 然后,人们可以用它来推断引擎处于执行计划的哪个部分。这些信息在Spark和Flink中也是可用的。

我想知道,在Postgres中是否有办法获得这些信息,可以在系统表中,或者通过观察进程,或者如果他想实现一个补丁,可以从内部的哪里寻找。

干杯!

postgresql sql-execution-plan long-running-processes
1个回答
0
投票

AFAIK没有现有的功能来详细监控长期运行的查询(有这样一个功能只适用于 3份DDL声明).

3年前已经提出了一个补丁。看起来它没有被集成。

参见黑客邮件列表中的讨论。https:/www.postgresql.orgmessage-idCADdR5nxQUSh5kCm9MKmNga8+c1JLxLHDzLhAyXpfo9-Wmc6s5g@mail.gmail.com。

© www.soinside.com 2019 - 2024. All rights reserved.