PostgreSQL и аналитика: 12 промтов, которые превращают LLM в персонального DBA и аналитика

В 2026 году большие языковые модели (LLM) перестали быть игрушкой и стали рабочим инструментом для инженеров данных и аналитиков. Однако, чтобы получить от них реальную пользу, нужны правильно составленные промты. В этой статье я собрал 12 проверенных сценариев — от оптимизации запросов до проектирования схем — с примерами и пояснениями. Вы узнаете, как использовать ChatGPT, Claude или локальные модели для ускорения рутинных задач, снижения нагрузки на БД и повышения качества кода.

Материал основан на моём опыте работы с PostgreSQL 16 и 17, а также на рекомендациях из официальной документации PostgreSQL и блогов таких экспертов, как Lukas Fittl (pganalyze) и Craig Kerstiens. Все примеры синтаксиса проверены на реальных базах.

Базовый уровень: промты для повседневных задач

1. Генерация SQL-запроса по текстовому описанию

Задача: быстро получить рабочий SQL-запрос без ручного написания.

Промт:

Ты — опытный PostgreSQL-разработчик. Напиши SQL-запрос для следующей задачи: [описание]. Используй синтаксис PostgreSQL 16. Если нужно, добавь комментарии, поясняющие логику. Верни только SQL-код без лишнего текста.

Пример результата: для задачи «вывести топ-5 клиентов по сумме заказов за последний месяц» модель сгенерирует:

SELECT c.customer_id, c.name, SUM(o.total_amount) AS total_spent
FROM customers c
JOIN orders o ON c.customer_id = o.customer_id
WHERE o.order_date >= date_trunc('month', CURRENT_DATE - INTERVAL '1 month')
  AND o.order_date < date_trunc('month', CURRENT_DATE)
GROUP BY c.customer_id, c.name
ORDER BY total_spent DESC
LIMIT 5;

2. Объяснение существующего запроса

Задача: разобраться, что делает сложный запрос, доставшийся в наследство.

Промт:

Объясни, что делает следующий SQL-запрос, построчно. Укажи, какие таблицы используются, какие условия применяются и какой результат ожидается. Если есть потенциальные проблемы, отметь их.

```sql
[вставьте запрос]

**Пример результата:** модель разберёт запрос, укажет на неявные JOIN, возможные декартовы произведения и предложит упрощения.

### 3. Форматирование и приведение к стилю

**Задача:** привести запросы к единому стилю (например, как в dbt style guide).

**Промт:**

Отформатируй следующий SQL-запрос в соответствии с dbt SQL style guide: ключевые слова заглавными, отступы в 4 пробела, каждый столбец на новой строке. Верни только исправленный код.

[вставьте запрос]

**Пример результата:** запрос станет читаемым и единообразным.

### 4. Генерация тестовых данных

**Задача:** создать реалистичный набор данных для тестирования.

**Промт:**

Сгенерируй INSERT-запросы для PostgreSQL, которые заполнят таблицу users (столбцы: id serial, name text, email text, created_at timestamptz) 100 случайными записями. Используй реалистичные имена и email. Учти, что created_at должен быть в пределах последнего года.


**Пример результата:** модель выдаст 100 INSERT-ов или один INSERT с generate_series.

## Продвинутый уровень: оптимизация и анализ

### 5. Анализ EXPLAIN ANALYZE

**Задача:** понять, почему запрос выполняется медленно.

**Промт:**

Проанализируй вывод EXPLAIN (ANALYZE, BUFFERS) для следующего запроса. Определи узкие места: последовательные сканирования, неэффективные соединения, недостающие индексы. Предложи конкретные шаги по оптимизации.

[вставьте вывод EXPLAIN]

**Пример результата:** модель укажет на Seq Scan по большой таблице и предложит создать индекс на столбец в условии WHERE.

### 6. Рекомендация индексов

**Задача:** подобрать оптимальные индексы для набора запросов.

**Промт:**

У меня есть следующие запросы к PostgreSQL. Проанализируй их и предложи индексы, которые ускорят выполнение. Учти, что таблицы большие, и избегай избыточных индексов. Для каждого индекса объясни, почему он нужен.

Запрос 1: ...
Запрос 2: ...


**Пример результата:** модель порекомендует составной индекс (customer_id, order_date) для ускорения фильтрации и сортировки.

### 7. Переписывание запроса с CTE на оконные функции

**Задача:** упростить сложный запрос с множеством подзапросов.

**Промт:**

Перепиши следующий запрос, используя оконные функции вместо коррелированных подзапросов. Цель — повысить производительность и читаемость.

[вставьте запрос]

**Пример результата:** модель заменит подзапросы на OVER (PARTITION BY ...) и объяснит выгоду.

### 8. Настройка autovacuum для таблицы

**Задача:** уменьшить bloat и улучшить производительность.

**Промт:**

У меня есть таблица events с интенсивной записью (10 тыс. вставок в секунду). Текущие параметры autovacuum стандартные. Предложи оптимальные настройки autovacuum для этой таблицы, учитывая, что PostgreSQL 16. Объясни, как эти параметры повлияют на производительность и bloat.


**Пример результата:** модель порекомендует увеличить autovacuum_vacuum_scale_factor до 0.01 и уменьшить autovacuum_vacuum_threshold.

## Экспертный уровень: проектирование и архитектура

### 9. Проектирование схемы БД с нуля

**Задача:** создать оптимальную схему для нового проекта.

**Промт:**

Спроектируй схему базы данных PostgreSQL для интернет-магазина. Основные сущности: товары, категории, заказы, пользователи, платежи. Учти нормализацию до 3НФ, предложи типы данных, первичные и внешние ключи, индексы. Выдай DDL-скрипт с комментариями.


**Пример результата:** модель сгенерирует CREATE TABLE с правильно подобранными типами (например, numeric для денег) и индексами.

### 10. Миграция с MySQL на PostgreSQL

**Задача:** перенести существующую схему с минимальными изменениями.

**Промт:**

Ниже — DDL из MySQL. Перепиши его для PostgreSQL, учитывая различия в типах данных, автоинкременте, синтаксисе индексов. Сохрани имена таблиц и столбцов. Добавь комментарии о том, что было изменено.

[вставьте MySQL DDL]

**Пример результата:** модель заменит AUTO_INCREMENT на GENERATED BY DEFAULT AS IDENTITY, TINYINT на SMALLINT и т.д.

### 11. Партиционирование большой таблицы

**Задача:** разбить таблицу на партиции для улучшения управления и производительности.

**Промт:**

У меня есть таблица logs с 500 млн строк, содержащая столбец created_at (timestamp). Предложи стратегию партиционирования по диапазону дат. Напиши DDL для создания партиционированной таблицы и нескольких партиций. Объясни, как это повлияет на запросы и обслуживание.


**Пример результата:** модель предложит партиционирование по месяцам с помощью PARTITION BY RANGE.

### 12. Аудит безопасности и прав доступа

**Задача:** проверить, что права доступа настроены безопасно.

**Промт:**

Проанализируй следующие GRANT-ы в PostgreSQL. Укажи на избыточные привилегии, потенциальные угрозы и предложи минимально необходимые права для роли app_user, которая должна только читать и писать в таблицы схемы public.

[вставьте GRANT-ы]

```

Пример результата: модель порекомендует отозвать права на CREATE и ограничиться SELECT, INSERT, UPDATE, DELETE.

Как использовать эти промты на практике

Все промты стоит адаптировать под ваш контекст: указывайте версию PostgreSQL, размер таблиц, особенности нагрузки. Помните, что LLM не заменяет DBA, а лишь ускоряет рутину. Всегда проверяйте сгенерированный код на тестовой среде.

Уровень Для кого Основная цель
Базовый Новички, аналитики Быстрое написание и понимание запросов
Продвинутый Разработчики, DBA Оптимизация и тюнинг
Экспертный Архитекторы, тимлиды Проектирование и миграции

Источники и полезные ссылки

  • Официальная документация PostgreSQL: https://www.postgresql.org/docs/current/
  • Блог pganalyze: https://pganalyze.com/blog
  • Use The Index, Luke: https://use-the-index-luke.com/
  • Документация по EXPLAIN: https://www.postgresql.org/docs/current/using-explain.html

Эти промты — не догма, а отправная точка. Экспериментируйте, комбинируйте, делитесь своими находками. Если вы только начинаете путь в аналитике и хотите глубже освоить работу с данными, обратите внимание на курсы asibiont.com — там вы найдёте структурированные материалы по SQL, аналитике и AI-инструментам. Удачи в оптимизации!

← Все статьи

Комментарии

Читайте также

Китайский язык с нуля: как AI помогает освоить иероглифы, тоны и HSK на ASI Biont

14 июня 2026

AI обучение программированию: как нейросети ускоряют освоение кода и меняют образование

5 июня 2026

Как интегрировать ActiveCampaign с AI-агентом ASI Biont: полный гайд по автоматизации email-маркетинга без кода

18 июля 2026

Автоматизация развертываний и откатов: как ИИ-агент ASI Biont интегрируется с Netlify для DevOps без кода

18 июля 2026

Легаси-код: 12 промтов, которые превратят технический долг в чистую архитектуру

18 августа 2026

От линейной регрессии до трансформеров: как курс Machine Learning и Deep Learning на asibiont.com превращает новичков в инженеров продакшена

20 июля 2026

AI-таргетолог: генерация креативов, анализ аудиторий и автозапуск рекламы — как искусственный интеллект заменяет целый отдел маркетинга

11 июня 2026

Управление DC-моторами через ИИ: интеграция L298N и BTS7960 с ASI Biont

2 августа 2026

Как LilyGO T-Beam и ASI Biont автоматизировали мониторинг автопарка: пошаговый гайд по интеграции GPS-трекера с AI-агентом

15 июля 2026