Мне нужно увидеть запросы, отправленные на сервер PostgreSQL. Обычно я бы использовал профилировщик SQL Server для выполнения этого действия в среде SQL Server, но я еще не нашел, как это сделать в PostgreSQL. Похоже, что существует довольно много платных инструментов, я надеюсь, что есть вариант с открытым исходным кодом.
источник
Добавляя к ответу Джошуа, чтобы увидеть, какие запросы в настоящее время выполняются, просто введите следующий оператор в любое время (например, в окне запроса PGAdminIII):
SELECT datname,procpid,current_query FROM pg_stat_activity;
Пример вывода:
datname | procpid | current_query ---------------+---------+--------------- mydatabaseabc | 2587 | <IDLE> anotherdb | 15726 | SELECT * FROM users WHERE id=123 ; mydatabaseabc | 15851 | <IDLE> (3 rows)
источник
Я открыл для себя pgBadger ( http://dalibo.github.io/pgbadger/ ), и это фантастический инструмент, который много раз спасал мне жизнь. Вот пример отчета: http://dalibo.github.io/pgbadger/samplev4.html . Если вы откроете его и перейдете в «верхнее» меню, вы увидите самые медленные запросы и запросы, отнимающие много времени. Затем вы можете спросить подробности и увидеть красивые графики, которые показывают запросы по часам, а если вы воспользуетесь кнопкой подробностей, вы сможете увидеть текст SQL в красивой форме. Итак, я вижу, что этот инструмент бесплатный и идеальный.
источник
Как вариант, если вы используете pgAdmin (на моем фото это pgAdmin 4 v2.1). Вы можете наблюдать запросы через вкладку «Личный кабинет»:
источник
Вы можете использовать расширение pg_stat_statements .
Если вы запускаете db в докере, просто добавьте эту команду, в
docker-compose.yml
противном случае просто посмотрите инструкции по установке для вашей установки:А затем в базе данных запустите этот запрос:
CREATE EXTENSION pg_stat_statements;
Теперь, чтобы увидеть операции, на выполнение которых требовалось больше времени:
SELECT * FROM pg_stat_statements ORDER BY total_time/calls DESC LIMIT 10;
Или поиграйте с другими запросами в этом представлении, чтобы найти то, что вы ищете.
источник