зеркало из
				https://github.com/iharh/notes.git
				synced 2025-10-30 21:26:09 +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. Помните, что регулярный мониторинг и анализ данных являются важной частью управления базой данных для обеспечения ее эффективной работы.
 | 
