Информация в pg_stat_activity
немного скудна и не дает информации о ходе выполнения длинных запросов.
Эта информация вроде доступна в v$session_longops
в Oracle, где указывается, какой объект обрабатываемых (target
), количество элементов, которые необходимо от go до (totalwork
), и количество элементов, обработанных на данный момент (sofar
). Затем можно использовать это, чтобы определить, в какой части плана выполнения находится движок. Эта информация также доступна в Spark и Flink.
Мне было интересно, есть ли способ получить к нему доступ в Postgres, либо в системных таблицах, либо путем наблюдения за процессами, либо там, где можно заглянуть внутрь, если он хочет реализовать патч.
Ура!