Профилирование 2026-07-04: offer-trend — самый тяжёлый запрос /analyze
(Nested Loop 141k итераций в objective_lots_history с heap-fetch на
каждую — ~590k буфер-доступов, 6.8с тёплый, >8с холодный → пробивал
8с-гвард ~2/сутки). Покрывающий partial-индекс: ключ = join+порядок
DISTINCT ON, INCLUDE = фильтр+проекция → Index Only Scan.
УЖЕ ПРИМЕНЁН на прод руками CONCURRENTLY (без блокировки writes,
build 134 МБ) + зарегистрирован в _schema_migrations — деплой-apply
этой миграции no-op (IF NOT EXISTS + трекер). Прод-верификация:
Execution 6789мс → 1072мс (6.3×), Index Only Scan подтверждён.
Триггер-писатель (166) и MV (164) остаются на _lot_idx — не затронуты
(разбор потребителей в комментарии миграции).