SQL — язык, в котором один и тот же вопрос на разных схемах, объёмах и диалектах даёт разные правильные ответы. Поэтому полезный запрос к модели начинается с DDL и версии базы, а не с «напиши запрос для отчёта». По схеме модель пишет запрос с верными именами и соединениями, объясняет каждый CTE, находит ловушки вроде среднего по строкам вместо среднего чека. По EXPLAIN ANALYZE — объясняет, почему медленно, переписывает и предлагает индексы с оценкой. Проверка плана на реальном объёме, решение об индексе и миграция в окно — за человеком. Работает из России без VPN, запросы можно забрать файлом.
DDL — половина ответа
Имена колонок, типы, ключи, существующие индексы — всё это модель берёт из приложенной схемы, а без неё угадывает. Угадывает правдоподобно, и это хуже, чем если бы ошибалась явно: запрос выглядит верным и падает на имени колонки. CREATE TABLE для участвующих таблиц занимает секунды и экономит три итерации.
План говорит больше, чем запрос
Текст запроса показывает, что хотели; EXPLAIN ANALYZE — что получилось: Seq Scan вместо индекса из-за функции в WHERE, Nested Loop на миллионах строк, сортировка на диске из-за нехватки памяти. Модель читает план и называет причину до переписывания — и это правильный порядок: сначала «почему», потом «как», потом проверка, что «как» изменило именно это.
Корректность — отдельный вопрос
Быстрый запрос с неверным результатом хуже медленного с верным. Типовые ловушки — дубли после join один-ко-многим, потерянные строки из-за INNER вместо LEFT, NULL в агрегации, границы периода и таймзоны. Модель находит их, если спросить отдельно: «на каких данных запрос даст неверный результат». Контрольная сумма на известном периоде — обязательная проверка после любой правки.
Индекс — не бесплатно
Каждый индекс ускоряет чтение и замедляет запись. Модель предложит индекс и объяснит, что изменится в плане, но решение принимает тот, кто знает нагрузку на таблицу. Рабочий порядок: создать CONCURRENTLY на копии, проверить, что план действительно изменился, оценить запись — и только потом в прод.
Где модель опасна
В версиях и объёмах. Синтаксис или функция может отсутствовать в вашей версии базы — сверяется по документации за минуту. Предсказанное ускорение — гипотеза до EXPLAIN ANALYZE на боевом объёме. Миграция на 120 млн строк — только батчами, на копии и с планом отката, который модель напишет, если попросить. Всё остальное — запрос по схеме, разбор плана, переписывание, перевод между диалектами — модель делает стабильно.