Я хочу профилировать (держать глаз) все действия, которые происходят в базе данных, которая находится в PostgreSQL.
Есть ли такая утилита, которая поможет мне сделать это?
Ответ 1
Для "сохранения глаз" я использую pgtop, программу, которая намеренно имитирует команду "сверху" Unix.
Ответ 2
"Следите за" и "профиль" - две разные задачи, на мой взгляд.
Для профилирования (не просмотра в реальном времени, что происходит прямо сейчас, но чтобы посмотреть, какие запросы занимают больше всего времени и т.д.), проверьте pgFouine:
Это позволит вам узнать, какие запросы являются ресурсоемкими, и предпримите соответствующие действия: добавьте отсутствующие индексы, перепишите запросы, используя другие методы и т.д.
Ответ 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, они доступны там