41 lines
1.7 KiB
SQL
41 lines
1.7 KiB
SQL
-- =============================================================
|
|
-- V010__indexes.sql
|
|
-- B-tree indexy pro časté dotazy (plán, telemetrie, ceny, audit, EV, režimy).
|
|
-- Pozn.: idx_ev_session_active na (charger_id, session_end) je ve V006;
|
|
-- zde idx_ev_session_site_active doplňuje vyhledávání aktivní session podle site.
|
|
-- =============================================================
|
|
|
|
-- Planning (control exporter hledá aktivní plán pro aktuální slot)
|
|
CREATE INDEX IF NOT EXISTS idx_planning_run_site_status
|
|
ON ems.planning_run (site_id, status, created_at DESC);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_planning_interval_run_start
|
|
ON ems.planning_interval (run_id, interval_start);
|
|
|
|
-- Telemetrie (dashboard čte poslední hodnoty)
|
|
CREATE INDEX IF NOT EXISTS idx_telemetry_inverter_site_time
|
|
ON ems.telemetry_inverter (site_id, measured_at DESC);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_telemetry_ev_site_time
|
|
ON ems.telemetry_ev_charger (site_id, measured_at DESC);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_telemetry_hp_site_time
|
|
ON ems.telemetry_heat_pump (site_id, measured_at DESC);
|
|
|
|
-- Market prices (forecast + planning čte ceny pro horizont)
|
|
CREATE INDEX IF NOT EXISTS idx_market_price_source_start
|
|
ON ems.market_interval_price (market_source, interval_start);
|
|
|
|
-- Audit (dashboard čte dnešní data)
|
|
CREATE INDEX IF NOT EXISTS idx_audit_interval_site_start
|
|
ON ems.audit_interval (site_id, interval_start DESC);
|
|
|
|
-- EV session (control exporter + UI hledá aktivní session podle lokality)
|
|
CREATE INDEX IF NOT EXISTS idx_ev_session_site_active
|
|
ON ems.ev_session (site_id, session_end)
|
|
WHERE session_end IS NULL;
|
|
|
|
-- Operating mode log
|
|
CREATE INDEX IF NOT EXISTS idx_mode_log_site_time
|
|
ON ems.site_operating_mode_log (site_id, activated_at DESC);
|