Аварии за сутки: полный проход журнала
Аварии за сутки: полный проход журнала
Панель «аварии за сутки» висит на стене поста жизнеобеспечения и открывается пять секунд — дежурный успевает отвернуться. Аварий в журнале меньше процента, но машина читает его целиком: дороги к этим строкам нет, и приходится смотреть каждую. Запрос зашит в панель и меняться не может — значит, дорогу надо построить. Постройте индекс так, чтобы машина спускалась сразу к аварийным строкам нужных суток, а не просеивала весь журнал.
SELECT reading_id, sensor_id, reading_ts FROM ls_readings WHERE status = 'fault' AND reading_ts >= TIMESTAMPTZ '2184-03-01 00:00:00+00' AND reading_ts < TIMESTAMPTZ '2184-03-02 00:00:00+00' ORDER BY reading_ts
Только CREATE/ALTER/DROP — SELECT в конце не нужен.
Что считается решением
Менять можно только схему: индексы и ANALYZE. Запрос из условия остаётся как есть — присылать его не нужно.
- в плане нет Seq Scan по ls_readings
- запрос читает не больше 44 страниц по 8 КБ
Проверка идёт на данных крупнее тех, что вы видите в примерах, — ответ должен держаться на объёме.
Войдите, чтобы видеть историю отправок
ВойтиВойдите, чтобы использовать AI Mentor
Войти