Форум программистов, компьютерный форум, киберфорум
PostgreSQL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/21: Рейтинг темы: голосов - 21, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.11.2020
Сообщений: 86

Просмотр истории запросов в PostgreSQL

17.10.2022, 16:42. Показов 5802. Ответов 2

Студворк — интернет-сервис помощи студентам
Привет, столнулся с проблемой - мне нужно просмотреть для отчета историю создания таблиц и внесения изменений в них (всё , от простых селектов для проверки до insert ов и update ов) но pgadmin сохраняет только часть истории

Вопрос, можно ли подтянуть историю запросов?

Добавлено через 2 часа 24 минуты
Нашел интересный вариант решения https://wtfm.info/pg_stat_acti... ostgresql/

View pg_stat_activity позволяет посмотреть текущие запросы в PostgreSQL. Настроим автоматический сбор и хранение этой информации.

Добавлено через 1 минуту
таблица для сбора
SQL
1
2
3
4
 --create table for historical data PG10+
CREATE TABLE pg_stat_activity_history AS
SELECT clock_timestamp() AS sample_time, datname, pid, usesysid, usename, backend_type, application_name, client_hostname, client_addr, wait_event_type, wait_event, query, query_start, 1000 * EXTRACT(EPOCH FROM (clock_timestamp()-query_start)) AS duration
FROM pg_stat_activity WHERE 1=2;
Создаем функцию pg_stat_activity_snapshot() для сбора данных каждую секунду в течение 1 минуты:

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
--create function, which will take 60 snapshots every 1 minute PG10+
CREATE OR REPLACE FUNCTION pg_stat_activity_snapshot()
RETURNS void AS
$$
DECLARE
start_ts TIMESTAMP := (SELECT clock_timestamp());
ldiff NUMERIC := 0;
BEGIN
    WHILE ldiff < 60
    LOOP
        INSERT INTO pg_stat_activity_history SELECT clock_timestamp() AS sample_time, datname, pid, usesysid, usename, backend_type, application_name, client_hostname, client_addr, wait_event_type, wait_event, query, query_start, 1000 * EXTRACT(EPOCH FROM (clock_timestamp()-query_start)) AS duration FROM pg_stat_activity WHERE state='active' AND pid != pg_backend_pid();
        perform pg_stat_clear_snapshot();
        perform pg_sleep(1);
        ldiff := EXTRACT (EPOCH FROM (clock_timestamp() - start_ts));
    END LOOP;
END
$$ LANGUAGE plpgsql;
Добавлено через 25 секунд
Но оно не работает, а таблица попросту пустая, подскажите пожалуйста почему так?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2022, 16:42
Ответы с готовыми решениями:

Хранение истории данных, и построение запросов с её использованием
Всем добра! Кто поможет - с меня причитается.:drink: Есть такая вот задача (простейшая даже для меня, гуманитария): Есть магазины,...

Просмотр истории
Создайте кнопку ПРОСМОТРЕТЬ ИСТОРИЮ. При нажатии на нее, в новом окне размером 400х600px (должно быть наличие полос прокрутки), должна...

Просмотр истории посещения сайтов
Добрый день. Такое дело. На работе поставили новый модем и switch я убрал, конфликтовали, но после недавних происшествий, была...

2
1264 / 978 / 384
Регистрация: 02.09.2012
Сообщений: 3,021
17.10.2022, 21:03
Лучший ответ Сообщение было отмечено Dimaaasik как решение

Решение

Если вы вызываете вашу функцию также как написано в примере, то уберите перенаправление в /dev/null и поставьте перенаправление в какой-нибудь лог-файл (с учетом перенаправления stderr в stdout для консолидированного вывода обоих IO-потоков). Так вы сможете увидеть потенциальные ошибки, что пишет psql при запуске.
1
0 / 0 / 0
Регистрация: 17.11.2020
Сообщений: 86
27.10.2022, 04:26  [ТС]
Спасибо большое, помогло я с вызовом походу накосячил)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.10.2022, 04:26
Помогаю со студенческими работами здесь

Просмотр истории подключений к удаленному компьютеру
Всем доброго времени суток! Уважаемые знатоки, нужна помощь. Значит, есть удалённый VPS (Windows Server 2008 r2), к которому я всегда...

Копирование и просмотр истории браузера chrome
Задача - копировать историю просмотра Веб страниц и просматривать ее из собственного приложения. Откуда и что копировать - уже нашел, а...

Как запретить просмотр истории периодических реквизитов в 1С 77
Помогите кто нибудь решить такую проблему, в 1С 77 необходимо запретить некоторым пользователям просматривать историю периодических...

Windows 2000 просмотр истории посещений Интернета
Где я могу посмотреть в Windows 2000 сколько времени (часов и минут) я был в Internete и на какие адресса заходил, кроме, как в Event...

Как запретить просмотр истории периодических реквизитов в 1С 77
Помогите кто нибудь решить такую проблему, в 1С 77 необходимо запретить некоторым пользователям просматривать историю периодических...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru