中的信息 pg_stat_activity
是那种稀缺的,对于长时间的查询,并不能给出进度信息。
这些信息可以在 v$session_longops
在Oracle中,它给出了正在处理的对象(target
),它需要经过的项目数量(totalwork
),以及目前已完成的项目数(sofar
). 然后,人们可以用它来推断引擎处于执行计划的哪个部分。这些信息在Spark和Flink中也是可用的。
我想知道,在Postgres中是否有办法获得这些信息,可以在系统表中,或者通过观察进程,或者如果他想实现一个补丁,可以从内部的哪里寻找。
干杯!
AFAIK没有现有的功能来详细监控长期运行的查询(有这样一个功能只适用于 3份DDL声明).
3年前已经提出了一个补丁。看起来它没有被集成。
参见黑客邮件列表中的讨论。https:/www.postgresql.orgmessage-idCADdR5nxQUSh5kCm9MKmNga8+c1JLxLHDzLhAyXpfo9-Wmc6s5g@mail.gmail.com。