Как получить статус выполняемого запроса в базе данных postgresql

У меня есть запрос на выборку, который выполняется очень долго. Как я получу статус этого запроса, например, как долго он будет выполняться? Независимо от того, обращается ли он к данным из таблиц или нет.

Примечание. В соответствии с pg_stat_activity состояние запроса отображается как активное, а не в состоянии ожидания. Как и в Oracle, мы можем видеть источник/цель и статус обработки запроса — есть ли что-то подобное в postgresql?


person Arun Padule    schedule 28.09.2012    source источник
comment
Мне нужно время завершения запроса в приведенном выше вопросе. Представление pg_stat_activity дает только активные запросы, базу данных, сведения о пользователе. pg_stat_activity не содержит время выполнения выполняющегося запроса.   -  person Arun Padule    schedule 01.10.2012


Ответы (3)


Основываясь на ответе @Anshu, я использую:

SELECT datname, pid, state, query, age(clock_timestamp(), query_start) AS age 
FROM pg_stat_activity
WHERE state <> 'idle' 
    AND query NOT LIKE '% FROM pg_stat_activity %' 
ORDER BY age;
person Mircea Vutcovici    schedule 27.05.2017

Этого пока нельзя сделать, но оно есть в TODO.

person supyo    schedule 19.09.2013

мы можем найти журнал запросов по отношению к базе данных в postgres.

select *
from pg_stat_activity
where datname = 'yourdatabasename'

Это даст активный журнал запросов к базе данных.

person Himanshu sharma    schedule 05.09.2017