Найдите, что тормозит вашу PostgreSQL — и проверьте, что исправили
Полный цикл аудита PostgreSQL: индексы, autovacuum, конфигурация, транзакции, надёжность. Сначала бесплатный чек в браузере — затем полный план с готовым remediation.sql за 30 000 ₽.
# Соединение — только чтение
conn.set_session(readonly=True,
autocommit=True)
# Что читает скрипт
pg_stat_user_tables # размер, сканирования
pg_stat_user_indexes # использование индексов
pg_settings # конфигурация
pg_class # структура объектов
# Что НЕ читает
✗ Содержимое ваших таблиц
✗ Пользовательские данные
✗ Пароли и тексты запросов
# Результат: один JSON-файл
# audit_data_20260710_144312.jsonРеальный прогон на тестовом стенде
PostgreSQL 16.14, база pg_audit_test 207 МБ. Snapshot → отчёт → применение remediation.sql → новый snapshot → сравнение. Три файла — не имитация.
ДО
Uptime 0.6h · PostgreSQL 16.14 · 207 MB
- Нет PK · pgbench_accounts (1M строк)
- Autovacuum off · database-level
- Dead tuples 51.7% · 516 957 / 1M
- work_mem слишком мал
remediation.sql
ПОСЛЕ
Тот же стенд, через 18 минут после SQL
- ✓ Critical: PK восстановлен
- ✓ Critical: autovacuum включён
- ✓ High: dead tuples очищены
- ✓ Medium: work_mem увеличен
- ✓ Medium: log_min_duration_statement
Как это работает
Пять шагов от запуска Collector до проверки результата
- 1Запустите Collector
Локально на сервере · snapshot за секунды
- 2Бесплатный чек
Мгновенно в браузере — что обнаружено
- 3План оптимизации
Полный отчёт + remediation.sql · 30 000 ₽
- 4Примените SQL
Сначала staging → потом production
- 5Repeat Check
Доказательство результата · 20 000 ₽ через 30–90 дней
Что находится в реальном аудите
Три реальных findings из отчёта выше — с confidence, impact и готовыми SQL-командами. Каждое исправление проверено сравнением «до / после».
Нет Primary Key
public.pgbench_accounts · 1 000 000 строк
Без PK невозможна логическая репликация, медленные UPDATE/DELETE идут через full scan, нет защиты от дубликатов. На миллионе строк каждое обновление сканирует всю таблицу.
ALTER TABLE "public"."pgbench_accounts" ADD COLUMN IF NOT EXISTS id BIGSERIAL; CREATE UNIQUE INDEX CONCURRENTLY "pgbench_accounts_pkey" ON "public"."pgbench_accounts"(id); ALTER TABLE "public"."pgbench_accounts" ADD PRIMARY KEY USING INDEX "pgbench_accounts_pkey";
Autovacuum глобально отключён
Database-level · current_setting('autovacuum') = 'off'
База не очищает dead tuples автоматически. Со временем таблицы раздуваются, чтение замедляется, индексы деградируют. В production это приводит к каскадной деградации производительности.
ALTER SYSTEM SET autovacuum = 'on'; SELECT pg_reload_conf();
Мёртвые кортежи 51.7%
public.pgbench_accounts · 516 957 dead / 1 000 000 live
Каждое чтение таблицы обрабатывает мусор. Cache hit ratio деградирует, планы запросов искажаются. На больших таблицах это критично — до 2x замедление всех SELECT.
VACUUM ANALYZE "public"."pgbench_accounts"; -- Или дождаться autovacuum, если включён.
Что проверяется
24+ автоматических проверок по шести категориям. Каждая находка содержит severity, evidence, confidence, impact, recommendation и готовый SQL.
Индексы
Отсутствующие, неиспользуемые, дублирующиеся и раздутые индексы. Проверка внешних и первичных ключей.
Скорость и память
Эффективность кэша, полные сканирования таблиц, временные файлы на диске, расхождения планировщика.
Состояние данных
Мёртвые строки, раздутие таблиц и индексов, актуальность статистики, нагрузка на autovacuum.
Транзакции и соединения
Долгие транзакции, зависшие сессии, избыточные idle-соединения, блокировки.
Настройки сервера
work_mem, логирование медленных запросов, таймауты, pg_stat_statements, autovacuum.
Риски и лимиты
Исчерпание sequence, устаревшая версия PostgreSQL, ошибки контрольных сумм, кандидаты на партиционирование.
Что собирает Collector
PG Audit Collector работает локально на сервере PostgreSQL, подключается read-only и собирает технические метаданные: конфигурацию, схему, статистику таблиц и индексов, активные расширения, WAL. Сбор snapshot занимает секунды. Анализ выполняется отдельно — по готовому JSON.
- Read-only доступ. Collector не выполняет модифицирующих запросов, не пишет в системные таблицы.
- Снимок за секунды. Один момент времени, без постоянного мониторинга — нет нагрузки на production. Анализ выполняется отдельно по готовому JSON.
- Нет данных пользователей. Не читает содержимое ваших таблиц — только технические метаданные.
- Поддержка PostgreSQL 12+. Включая последние release 16 и 17.
Содержимое audit_data.json
{
"collector": { "name": "pg_audit_collector",
"version": "1.0.4" },
"server": { "version": "PostgreSQL 16.0",
"uptime_seconds": 2100,
"config": { "autovacuum": "off",
"work_mem": "4MB", ... } },
"database": { "name": "pg_audit_test",
"size_pretty": "1536 MB" },
"tables": [ { "name": "pgbench_accounts",
"rows": 1000000,
"dead_ratio": 0.3412,
"has_primary_key": true },
{ "name": "pgbench_history",
"rows": 950000,
"dead_ratio": 1.0,
"has_primary_key": false }, ... ],
"stats": { "cache_hit_ratio": 0.9819,
"temp_files": 14, ... }
}Почему это безопаснее традиционного формата аудита
Сравнение двух моделей оказания услуги. Не нападка на конкурентов — у каждой модели свои компромиссы.
Не нужен remote admin access
Вы не открываете порт PostgreSQL в интернет. Collector запускается локально.
Не нужно давать пароль
PG_Collector использует существующий локальный доступ через Unix-socket.
Collector работает локально
На вашем сервере. Вы сами контролируете окружение и тайминги.
Snapshot, не live monitoring
Сбор snapshot занимает секунды. Никакого постоянного наблюдения за запросами.
Express Audit в браузере
JSON не отправляется на сервер. Весь анализ происходит локально.
Оптимизация без прямого доступа
Эксперт получает диагностический JSON, не доступ к вашей PostgreSQL.
| Параметр | Традиционный формат аудита | PG Audit |
|---|---|---|
| Сбор данных | Ручной сбор нескольких артефактов клиентом: статистика, SQL, структура БД, архивирование | Один автоматизированный snapshot через Collector |
| Доступ к данным | Файлы передаются специалисту для анализа | Данные не покидают инфраструктуру клиента |
| Сроки | До 1 недели на анализ | До 24 часов |
| Результат | Текстовые рекомендации + SQL-скрипты | HTML-отчёт с evidence + готовый remediation.sql + сравнение «до / после» |
| Контроль результата | Повторный анализ через месяц-два вручную | Repeat Check по новому snapshot — автоматически |
| Стоимость | От 100 000 ₽ (рынок РФ) | 30 000 ₽ |
Сравнение основано на публично описанном формате услуги; фактический процесс и стоимость других поставщиков могут отличаться. Профессиональный DBA может провести аудит через VPN, bastion, SSH или read-only роль — здесь сравниваются именно модели оказания услуги «под ключ».
Что вы получаете за 30 000 ₽
Конкретные файлы, не «анализ в свободной форме». Можно открыть, скачать, проверить до покупки — на реальном demo выше.
audit-report-before.html
Полный HTML-отчёт: 24+ проверок, severity, evidence, impact, confidence, recommendation. Executive summary + Quick Wins + план исправлений.
≈ 39 KB · открывается в браузере
remediation.sql
Готовый SQL под вашу версию PostgreSQL. Размечен по зонам: MUST_FIX / SHOULD_FIX / OBSERVE. Каждая команда с риском и confidence.
≈ 5 KB · применяете сами
audit-report-after.html
После применения SQL — новый snapshot и отчёт. Подтверждение, что рекомендации сработали на вашей инфраструктуре.
включено в Repeat Check
comparison-report.html
Diff «до / после»: сколько проблем исправлено, сколько новых появилось. Идеально для отчёта руководству.
включено в Repeat Check
SQL не выполняется автоматически. Вы полностью контролируете применение.
remediation.sql — это набор рекомендаций, не авто-исправление. Каждая команда размечена по уровню риска (HIGH / MEDIUM / LOW). Безопасные изменения (создание индексов CONCURRENTLY, ALTER SYSTEM с reload) можно применять сразу. Рискованные (изменение структуры таблиц) — сначала на staging, под нагрузкой, с резервной копией. Решение, что и когда применять, остаётся за вами.
Стоимость
Прозрачно, без скрытых платежей. Express Audit — навсегда бесплатно.
Бесплатный чек
Мгновенная оценка в браузере
- Загрузите audit_data.json в браузер
- Мгновенный результат — что обнаружено
- Количество проблем по уровням критичности
- Данные не покидают браузер
- Без регистрации
PostgreSQL Optimization
Стандартизированный анализ + готовый remediation SQL
- Полный диагностический анализ PostgreSQL
- Приоритетный план исправлений (Quick Wins / Strategic / Long-term)
- Готовый
remediation.sqlпод вашу версию PG - Оценка трудозатрат и рисков по каждому пункту
- Сравнение «до / после» через Repeat Check
- HTML-отчёт с evidence, impact, confidence
- SQL-команды размечены по зонам безопасности (зелёная / жёлтая / оранжевая)
- Поддержка PostgreSQL 12, 13, 14, 15, 16, 17
Repeat Check
Финальный шаг цикла: доказательство, что рекомендации сработали
- Новый snapshot через 30–90 дней после применения SQL
- Сравнение «до / после» — что исправлено, что появилось
- Отдельный
comparison-report.htmlдля руководства - Новый
remediation.sqlдля оставшихся проблем - На тестовом стенде: 5 из 5 Critical/High исправлено, 0 новых
90 дней — не маркетинговый срок. Это минимальное время, за которое PostgreSQL накапливает достаточно статистики (pg_stat_user_tables, pg_stat_user_indexes) для корректного сравнения. Повтор раньше — сравнение будет некорректным.
Хотите провести сделку через защищённую площадку с арбитражем? Закажите оптимизацию на Kwork. Цена 35 000 ₽ включает комиссию площадки — сама услуга стоит те же 30 000 ₽.
Заказать на Kwork — 35 000 ₽Напрямую через сайт — 30 000 ₽, через Kwork — 35 000 ₽ (разница = комиссия площадки).
Кейсы аудита, разборы проблем PostgreSQL, обновления продукта. Подписывайтесь на канал.
Открыть TelegramБесплатные инструменты
Не требуют регистрации. Полезны сами по себе.
Рассчитайте стоимость часа и минуты простоя базы данных, потенциальную месячную потерю и допустимый простой по SLA.
Открыть калькуляторКонтекстно-зависимая конфигурация под ваши RAM, CPU, storage и workload. С пояснениями и диапазонами.
Открыть генераторЗапустите Collector — узнайте, что нашёл аудит у вас
Бесплатно. Без регистрации. Данные остаются в вашем браузере.