Я хотел бы собрать статистику по самым высоким запросам в моей базе данных.
Для этого мне нужно знать, как я могу отслеживать запросы, чтобы я мог создавать представления или материализованные представления для кеширования результатов самых высоких запросов, поскольку у меня большая БД.
postgresql
view
materialized-view
mamesaye
источник
источник
Ответы:
Как кто-то сказал в комментариях, pg_stat_statements - это способ получить статистику. Поместите это в свой
postgresql.conf
:Затем выполните этот запрос:
После этого этот пример запроса (скопированный из документов, указанных выше) даст вам статистику для 5 самых популярных запросов из всех баз данных :
Если вам нужны результаты для одной базы данных , вам нужно отфильтровать, по
dbid
которой вы можете получитьpg_database
по имени БД. Добавьте это предложение WHERE в запрос выше:Вы также можете сделать соединение.
При тестировании этого может быть хорошей идеей исключить запросы к самим таблицам статистики / схемы, например:
Существует множество бесплатных и коммерческих инструментов, которые могут помочь вам визуализировать данные.
источник