зеркало из
https://github.com/iharh/notes.git
synced 2025-10-30 05:06:05 +02:00
82 строки
4.3 KiB
Plaintext
82 строки
4.3 KiB
Plaintext
|
|
*****************************************
|
|
В PostgreSQL анализ статистики для мониторинга может быть выполнен с использованием различных инструментов и запросов к системным представлениям. Вот несколько шагов и примеров:
|
|
|
|
1. pg_stat_statements:
|
|
|
|
Включите расширение pg_stat_statements в вашей базе данных. Это расширение отслеживает выполнение SQL-запросов и предоставляет информацию о времени выполнения, количестве вызовов и т.д.:
|
|
|
|
Включение расширения (выполнить один раз)
|
|
|
|
CREATE EXTENSION pg_stat_statements;
|
|
|
|
Запрос для анализа
|
|
|
|
SELECT * FROM pg_stat_statements ORDER BY total_time DESC;
|
|
|
|
Этот запрос вернет список SQL-запросов, отсортированный по общему времени выполнения в порядке убывания.
|
|
|
|
📌 Посмотреть статистику времени выполнения запросов для конкретной базы данных:
|
|
|
|
SELECT * FROM pg_stat_statements WHERE dbid = (SELECT oid FROM pg_database WHERE datname = 'your_database_name');
|
|
|
|
Замените 'your_database_name' на имя вашей базы данных.
|
|
|
|
📌 Посмотреть статистику времени выполнения запросов для конкретного пользователя:
|
|
|
|
SELECT * FROM pg_stat_statements WHERE userid = (SELECT usesysid FROM pg_user WHERE usename = 'your_username');
|
|
|
|
Замените 'your_username' на имя пользователя.
|
|
|
|
📌 Посмотреть статистику времени выполнения запросов для конкретной сессии:
|
|
|
|
SELECT * FROM pg_stat_statements WHERE pg_backend_pid() = procpid;
|
|
|
|
Этот запрос вернет статистику выполнения запросов для текущей сессии. Обратите внимание, что pg_backend_pid() - это функция, возвращающая идентификатор процесса текущей сессии.
|
|
|
|
✅ Эти запросы предоставляют информацию о времени выполнения, количестве вызовов и других параметрах запросов. Вы можете адаптировать эти запросы в соответствии с вашими конкретными требованиями анализа и мониторинга.
|
|
|
|
2. pg_stat_bgwriter:
|
|
|
|
Данное представление предоставляет статистику по работе фонового процесса записи:
|
|
|
|
SELECT * FROM pg_stat_bgwriter;
|
|
|
|
3. pg_stat_database:
|
|
|
|
Это представление предоставляет статистику по использованию баз данных:
|
|
|
|
SELECT * FROM pg_stat_database;
|
|
|
|
4. pg_stat_user_tables:
|
|
|
|
Позволяет получить статистику по таблицам:
|
|
|
|
SELECT * FROM pg_stat_user_tables;
|
|
|
|
5. pg_stat_user_indexes:
|
|
|
|
Статистика по индексам:
|
|
|
|
SELECT * FROM pg_stat_user_indexes;
|
|
|
|
6. pg_locks:
|
|
|
|
Позволяет отслеживать текущие блокировки в базе данных:
|
|
|
|
SELECT * FROM pg_locks;
|
|
|
|
7. pg_stat_activity:
|
|
|
|
Дает информацию о текущих активных сессиях:
|
|
|
|
SELECT * FROM pg_stat_activity;
|
|
|
|
8. pg_stat_replication:
|
|
|
|
Если вы используете репликацию, этот запрос предоставит статистику по репликации:
|
|
|
|
SELECT * FROM pg_stat_replication;
|
|
|
|
✅ Эти запросы могут помочь вам мониторить производительность, выявлять узкие места и выявлять проблемы в вашей базе данных PostgreSQL. Помните, что регулярный мониторинг и анализ данных являются важной частью управления базой данных для обеспечения ее эффективной работы.
|