Všechny reference
Doprava a logistika

Optimalizace manažerského reportu nad databází

Dopravní společnost (dlouhodobý klient našeho týmu)

Klíčový manažerský report padal a jeden běh trval kolem dvou minut. Po sérii měřených iterací jsme ho zrychlili až 10,4-násobně — při věcně identických výstupech.

Report 10,4× rychlejší — se zárukou identických výstupů

Výzva

Report, který denně používá management, náhodně padal na chybě a jeden běh trval kolem 2 minut; každý běh prohledával celou tabulku a extrémně zatěžoval databázový server. Tvrdá podmínka klienta: výstup se nesmí změnit ani o řádek.

Řešení

Příčinu jsme určili měřením (exekuční plány, I/O statistiky), ne odhadem. Před první změnou jsme postavili automatizovaný test, který každý variant porovnal s původním výstupem řádek po řádku — do měření výkonu postoupil jen variant s identickým výsledkem. Pracovali jsme výhradně s read-only přístupem, bez zásahu do aplikace a dat.

Výsledky:

  • Zrychlení z ~2 minut na 11–24 sekund podle datového okna; největší naměřené 10,4×
  • Zátěž databázového serveru snížena o řád (ze ~145 milionů čtení na zlomek)
  • Odstraněné náhodné pády reportu
  • Věcně identické výstupy ověřené automatizovaným porovnáním (7 měřených verzí, 140+ testovacích artefaktů)
  • Předaný testovací mechanismus a diagnostické skripty použitelné na další reporty

Měřit, ne hádat

Skutečné úzké hrdlo jsme neurčili odhadem, ale měřením — exekučními plány a I/O statistikami. Vyzkoušeli a zdokumentovali jsme i slepé uličky. Finální řešení kombinuje předfiltrování hlavní tabulky, cílené usměrnění optimalizéru, předagregaci těžkých poddotazů a deterministické řazení pro reprodukovatelný výstup.

Záruka, že se výstup nezmění

Report je podklad pro rozhodování, takže se nesměl změnit ani o řádek. Proto jsme ještě před první úpravou postavili automatizovaný test: každý variant query se spustil se stejnými parametry a jeho výstup se strojově porovnal s původním, buňka po buňce. Do měření rychlosti postoupil jen variant se shodným výsledkem. Právě takový systematický přístup — generovat varianty, měřit, automaticky porovnávat — umožňuje dělat optimalizace rychle a s pomocí AI v procesu práce, ale vždy poctivě přes důkaz.

Máte podobný projekt?

Řekněte nám, co řešíte — ozveme se s návrhem, jak to udělat rychle a měřitelně.

Nezávazná konzultace