Существует ли PostgreSQL эквивалент SQL Server profiler?



Мне нужно увидеть запросы, отправленные на сервер PostgreSQL. Обычно я бы использовал SQL Server profiler для выполнения этого действия в SQL Server land, но мне еще предстоит найти, как это сделать в PostgreSQL. Там, кажется, довольно много платных инструментов, я надеюсь, что есть вариант с открытым исходным кодом.

717   5  

5 ответов:

вы можете использовать log_statement config параметр, чтобы получить список всех запросов к серверу

https://www.postgresql.org/docs/current/static/runtime-config-logging.html#guc-log-statement

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

затем вы можете взять эти запросы и запустить объяснить на них, чтобы узнать, что происходит с их.

https://www.postgresql.org/docs/9.2/static/using-explain.html

добавление к ответу Джошуа, чтобы увидеть какие запросы в настоящее время выполняются просто выполните следующее заявление в любое время (например, в окне запроса 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. Если вы откроете его и перейдете в меню "сверху", вы увидите самые медленные запросы и запросы, занимающие много времени. Затем вы можете задать детали и посмотреть хорошие графики, которые показывают вам запросы по часам, и если вы используете кнопку detail, вы можете увидеть текст SQL в красивой форме. Так что я могу видим, что этот инструмент является бесплатным и отлично.

Мне нужно увидеть запросы, отправленные на сервер PostgreSQL

как вариант, если вы используете pgAdmin (на моей картинке это pgAdmin 4 v2.1). Вы можете наблюдать за запросами через вкладку " Панель мониторинга: pgadmin4 query from application, dashboard

добавление к ответу

Это работает для меня:

открыть postgresql.conf

Set:

log_statement = 'mod'

log_min_messages = debug2

открыть последний журнал в папку C:\Program файлы\PostgreSQL\9.6\data\pg_log\

запросы будут там.

Я использую postgresql-9.6.5-1

Comments

    Ничего не найдено.