Подтвердить что ты не робот

Как профилировать базу данных PostgreSQL?

Я хочу профилировать (держать глаз) все действия, которые происходят в базе данных, которая находится в PostgreSQL.

Есть ли такая утилита, которая поможет мне сделать это?

4b9b3361

Ответ 1

Для "сохранения глаз" я использую pgtop, программу, которая намеренно имитирует команду "сверху" Unix.

Ответ 2

"Следите за" и "профиль" - две разные задачи, на мой взгляд.

Для профилирования (не просмотра в реальном времени, что происходит прямо сейчас, но чтобы посмотреть, какие запросы занимают больше всего времени и т.д.), проверьте pgFouine:

http://pgfouine.projects.postgresql.org/

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

Ответ 3

Так как ребра ответит на другой инструмент профилирования pgbadger, он вышел. Вы можете найти это здесь: http://dalibo.github.io/pgbadger/

вы можете получить очень подробный отчет и графики.

pgfouine больше не поддерживается, последнее обновление было в 2010 году.

Ответ 4

Хорошо, если вы посмотрите, что происходит, в отношении выбора, обновления, удаления и т.д., в схеме pg_catalog есть несколько просмотров, я в основном использую pg_stat_user_tables и pg_stat_user_indexes, но там намного больше, все в пределах pg_stat*.

Также есть представление pg_stat_activity, которое сообщает вам, что работает на вашем сервере прямо сейчас.

Я взломал четыре плагина munin, которые используют user_tables и user_indexes, они доступны там