Postgresql Проверить, если запрос все еще выполняется

В своей работе мне нужно было создать новую таблицу соединений в базе данных postgresql, которая требовала выполнения большого количества вычислений для двух существующих таблиц. Процесс должен был занять много времени, поэтому я настроил его на выходные, а потом уехал в пятницу. Теперь я хочу проверить, завершен ли запрос или нет.

Как я могу проверить, завершена ли команда INSERT, пока она не находится на компьютере, на котором я ее запускал? (Нет, я не знаю, сколько строк предполагалось добавить.)

2 ответа

Решение
Select * from pg_stat_activity where state not ilike 'idle%' and query ilike 'insert%'

Это вернет все бездействующие сеансы, где запрос начинается с insert, если ваш запрос не отображается в этом списке, он больше не выполняется.

pg_stat_activity doc

Вы можете взглянуть на стол pg_stat_activity который содержит все соединения с базой данных, включая активный запрос, владельца и т. д.

На https://gist.github.com/rgreenjr/3637525 приведен пример с возможностью копирования, как может выглядеть такой запрос.

Другие вопросы по тегам