22. července 2026

Jak ověřovat SQL, které vygeneroval model

SQL vrátí nulu a databáze neohlásí chybu. Může to být správný výsledek. Stejně tak mohl model použít chybný kód oddělení nebo spojit tabulky přes nesprávný klíč.

Úspěšné spuštění tedy ověřuje jen část problému. Je potřeba posoudit i to, zda dotaz odpovídá zadání.

Kontrola před spuštěním a po něm

Ještě před spuštěním musí dotaz projít pravidly přístupu k datům a omezeními vykonávací vrstvy. Oprávnění, povolené operace a časový limit patří do aplikace a databáze.

Po spuštění lze kontrolovat význam výsledku. Odpovídají filtry otázce? Nezměnilo spojení tabulek počet osob na počet smluv? Použil se správný časový interval?

Část kontrol lze vyjádřit kódem. Pro posouzení zadání a dotazu se může hodit samostatný hodnoticí krok s modelem, často označovaný jako judge. Ani jeho souhlas ale není důkaz správnosti.

Co pomůže s podezřelým výsledkem

Pokud složitý dotaz vrací nulu, lze ověřit jednotlivé filtry, hodnoty číselníků a vazby. Existuje zadané oddělení? Odpovídá použitý kód skutečné hodnotě? Nevyloučilo spojení záznamy, které potřebujeme?

To, že existují ženy a existuje oddělení, ještě neznamená, že v něm nějaké ženy pracují. Dílčí počty jsou podklad pro další kontrolu, nikoli důvod automaticky odmítnout prázdný výsledek. I ověřovací dotazy potřebují omezený rozsah a čas.

Oprava potřebuje konkrétní důvod

Další pokus má dostat původní otázku, předchozí SQL a zjištěný problém. Například: „Kód lokality není v číselníku“ nebo „Spojení vrací více řádků na osobu, zadání požaduje počet osob.“

Počet pokusů i celkový čas omezte. Když se výsledek nepodaří ověřit, odpověď má tento stav přiznat. Záznam neúspěchu pak poslouží jako testovací případ.

Přínos kontrolní smyčky měřte na ověřených otázkách. Sledujte nejen opravené chyby, ale i případy, kdy kontrola zamítla správný výsledek nebo zbytečně prodloužila odpověď.