Аварии за сутки: полный проход журнала

Аварии за сутки: полный проход журнала

Панель «аварии за сутки» висит на стене поста жизнеобеспечения и открывается пять секунд — дежурный успевает отвернуться. Аварий в журнале меньше процента, но машина читает его целиком: дороги к этим строкам нет, и приходится смотреть каждую. Запрос зашит в панель и меняться не может — значит, дорогу надо построить. Постройте индекс так, чтобы машина спускалась сразу к аварийным строкам нужных суток, а не просеивала весь журнал.

Speed this query up with an index
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

Just CREATE/ALTER/DROP — no trailing SELECT needed.

What counts as solved

You may only change the schema: indexes and ANALYZE. The query stays as the task wrote it — no need to send it back.

  • the plan has no Seq Scan on ls_readings
  • the query reads at most 44 8 KB pages

Grading runs on a larger dataset than the samples show — the answer has to hold at scale.

PostgreSQLv16

Your query result will appear here

Focus radio
Paused · SomaFM · Fluid