Существует ли PostgreSQL, эквивалентный из профилировщика SQL Server?

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

74
задан Răzvan Flavius Panda 8 April 2013 в 13:40
поделиться

2 ответа

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

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

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

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

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

51
ответ дан 24 November 2019 в 12:02
поделиться

Добавив к ответу Джошуа, чтобы увидеть , какие запросы в настоящее время выполняются , просто введите следующий оператор в любое время (например, в окне запроса 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)
29
ответ дан 24 November 2019 в 12:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: