PostgreSQL Health Check
📱 Telegram: pg_audit_cases

PostgreSQL Diagnostic Report

DB: pg_audit_test | Uptime: 0.9h | Collected: 2026-07-10T05:13:04.416553+00:00

🚨 КРИТИЧЕСКОЕ ПРЕДУПРЕЖДЕНИЕ 🚨
База данных работает всего 0.9 часов (требуется минимум 24 часа для статистически значимых данных).
ВСЕ статистические выводы (Cache Hit Ratio, Dead Tuples, Unused Indexes) имеют пометку LOW CONFIDENCE и требуют подтверждения.
Детерминированные правила (Primary Key, Foreign Key) — НЕ зависят от uptime и являются достоверными.
⚠️ Важное уведомление: Данный отчёт сформирован на основе экспертной методологии анализа метаданных PostgreSQL (размеры, счётчики, структуры). Тексты SQL-запросов, имена пользователей и содержимое данных не собирались и не анализировались, что ограничивает глубину диагностики по ряду параметров.

Все SQL-команды составлены в соответствии с лучшими практиками администрирования PostgreSQL и проверены на корректность синтаксиса. Применимость каждой рекомендации обусловлена спецификой вашей инфраструктуры — перед внедрением на Production обязательно протестируйте изменения на staging-окружении и убедитесь в наличии актуальных резервных копий.

Результаты анализа предоставляются «как есть» (as-is). Автор не несёт ответственности за сбои, потерю данных или простои, возникшие вследствие применения рекомендаций без предварительного тестирования в условиях конкретной инфраструктуры.
ℹ️ Пояснения к рекомендациям:
0
Critical
2
High
1
Medium
1
Low
2
Info

🔴 Срочные действия

📋 План исправлений

# Приоритет Проблема Объект Риск Время
1 Рекомендуется Нет Primary Key public.pgbench_tellers 🟠 ~30 мин
2 Рекомендуется Нет Primary Key public.pgbench_branches 🟠 ~30 мин
3 Рекомендуется Много Seq Scan public.pgbench_accounts 🟡 ~30 мин

Всего: 0 срочных, 3 рекомендуемых, 3 наблюдений  |  🟢 Низкий   🟡 Средний   🟠 Высокий

📊 Бенчмарки

Метрика Значение Норма Оценка
Cache Hit Ratio
96.8% норма >99%
>99% ⚠️ НЕДОСТАТОЧНО ДАННЫХ (uptime < 24ч)
work_mem 64.0MB ≥4MB (рек. ≥64MB) Отлично

⚠️ Статистика собрана за 0.9 часов работы БД. Для достоверной оценки требуется минимум 24 часа.

🟠 HIGH Issues 2

HIGH DETERMINISTIC SHOULD_FIX

Нет Primary Key

public.pgbench_tellers
Impact: Блокирует логическую репликацию, усложняет обслуживание

Строк: 100

Recommendation: Добавьте Primary Key
🟠 Высокий риск
-- Шаг 1: Добавить колонку, если её нет (быстро, без блокировки)
ALTER TABLE "public"."pgbench_tellers" ADD COLUMN IF NOT EXISTS id BIGSERIAL;
-- Шаг 2: Создать уникальный индекс CONCURRENTLY (без блокировки записи)
CREATE UNIQUE INDEX CONCURRENTLY "pgbench_tellers_pkey" ON "public"."pgbench_tellers"(id);
-- Шаг 3: Назначить PK через готовый индекс (мгновенно)
ALTER TABLE "public"."pgbench_tellers" ADD PRIMARY KEY USING INDEX "pgbench_tellers_pkey";
Confidence: Deterministic rule — high confidence (99%)
HIGH DETERMINISTIC SHOULD_FIX

Нет Primary Key

public.pgbench_branches
Impact: Блокирует логическую репликацию, усложняет обслуживание

Строк: 10

Recommendation: Добавьте Primary Key
🟠 Высокий риск
-- Шаг 1: Добавить колонку, если её нет (быстро, без блокировки)
ALTER TABLE "public"."pgbench_branches" ADD COLUMN IF NOT EXISTS id BIGSERIAL;
-- Шаг 2: Создать уникальный индекс CONCURRENTLY (без блокировки записи)
CREATE UNIQUE INDEX CONCURRENTLY "pgbench_branches_pkey" ON "public"."pgbench_branches"(id);
-- Шаг 3: Назначить PK через готовый индекс (мгновенно)
ALTER TABLE "public"."pgbench_branches" ADD PRIMARY KEY USING INDEX "pgbench_branches_pkey";
Confidence: Deterministic rule — high confidence (99%)

🟡 MEDIUM Issues 1

MEDIUM STATISTICAL SHOULD_FIX ⚠️ LOW CONF

Много Seq Scan

public.pgbench_accounts
Impact: Высокая нагрузка на I/O, медленные запросы

5,000,000 строк прочитано через Seq Scan

Recommendation: Создайте индексы на столбцы фильтрации WHERE
🟡 Средний риск
-- CREATE INDEX CONCURRENTLY idx_pgbench_accounts_col ON "public"."pgbench_accounts" (col);
Confidence: ⚠️ LOW CONFIDENCE: uptime 0.9h < 24h

🔵 LOW Issues 1

LOW HEURISTIC OBSERVE ⚠️ LOW CONF

Отсутствие индекса на большой таблице

public.pgbench_accounts
Impact: ~1093 MB прочитано через Seq Scan

Размер: 156.2 MB | Seq Scans: 7.0

Recommendation: Создайте индекс на часто фильтруемые столбцы
🟡 Средний риск
-- CREATE INDEX CONCURRENTLY idx_pgbench_accounts_col ON "public"."pgbench_accounts" (col);
Confidence: ⚠️ LOW CONFIDENCE: uptime 0.9h < 24h

ℹ INFO Issues 2

INFO HEURISTIC OBSERVE

Информация: статистика использования индексов неполная

Database
Impact: Статистика по индексам может быть неполной после перезапуска

База работает 0.9 часов (менее 24)

Recommendation: Повторите анализ через 24 часа работы базы данных
🟢 Низкий риск
-- Повторите аудит через 24 часа непрерывной работы
Confidence: Uptime < 24h — защита от ложных срабатываний
INFO HEURISTIC OBSERVE

Информация: статистика ROI индексов неполная

Database
Impact: Статистика ROI индексов может быть неполной после перезапуска

База работает 0.9 часов (менее 24)

Recommendation: Повторите анализ через 24 часа работы базы данных
🟢 Низкий риск
-- Повторите аудит через 24 часа непрерывной работы
Confidence: Uptime < 24h — защита от ложных срабатываний