1.7Kпросмотров
59.1%от подписчиков
19 ноября 2025 г.
Score: 1.9K
🔬 Системный каталог PostgreSQL (ч. 2). Продолжаем исследовать полезные представления системного каталога PostgreSQL. Поехали дальше! pg_stat_user_tables Это представление предоставляет статистику по таблицам, включая последовательные сканирования, сканирования по индексам и операции на уровне строк (вставки, обновления, удаления). Оно отлично подходит для выявления таблиц с высокой нагрузкой или тех, которые требуют вакуумизации. Пример запроса, который покажет последовательные сканирования и сканирования по индексам по таблицам: SELECT relname AS table_name, seq_scan, idx_scan FROM pg_stat_user_tables WHERE seq_scan > 0 OR idx_scan > 0 ORDER BY seq_scan DESC; pg_stat_user_indexes Это представление предоставляет статистику по пользовательским индексам, такую как частота их использования и количество прочитанных кортежей. Это особенно полезно для поиска неиспользуемых или недостаточно используемых индексов. Пример запроса, который покажет никогда не использованные индексы в Postgres, отсортированные по размеру: SELECT s.schemaname, s.relname AS table_name, s.indexrelname AS index_name, pg_size_pretty(pg_relation_size(s.indexrelid)) AS index_size, s.idx_scan FROM pg_stat_user_indexes AS s JOIN pg_index AS i ON s.indexrelid = i.indexrelid WHERE s.idx_scan = 0 AND i.indisunique IS FALSE ORDER BY pg_relation_size(s.indexrelid) DESC; pg_settings Это встроенное представление, которое очень полезно для просмотра параметров конфигурации, их текущих значений и описаний. Используйте ILIKE для поиска конкретных параметров. Найти настройки shared_buffer или work_mem: SELECT name, setting, unit, short_desc FROM pg_settings WHERE name LIKE '%shared_buffers%' OR name LIKE '%work_mem%'; pg_roles Это представление описывает все системные роли, которые включают пользователей и группы. Оно полезно для проверки прав доступа, возможности входа и членства в ролях. Этот запрос выводит список всех ролей, показывая их имена, возможность входа и срок действия пароля: SELECT rolname, rolcanlogin, rolvaliduntil FROM pg_roles ORDER BY rolname; pg_database Это представление содержит все базы данных в кластере. Оно предоставляет ключевую метаинформацию для каждой базы данных, включая её владельца, кодировку символов и права доступа. Сейчас многие создают десятки, а иногда и сотни баз данных для разработки, так что это хороший общий обзор. Этот запрос выводит список всех баз данных Postgres, их размеры и владельцев: SELECT d.datname AS database_name, pg_size_pretty(pg_database_size(d.datname)) AS database_size, pg_get_userbyid(d.datdba) AS owner FROM pg_database AS d WHERE d.datistemplate = false; В финальной, третьей заметке по системному каталогу мы посмотрим еще на некоторые полезные таблицы и представления и научимся паре трюков ☺️ На этом все! До связи! #pgbase #queries
1.7K
просмотров
2833
символов
Нет
эмодзи
Нет
медиа

Другие посты @pg_guru

Все посты канала →
🔬 Системный каталог PostgreSQL (ч. 2). Продолжаем исследова — @pg_guru | PostSniper