Ja mam osvedceny postup - napisu to nejdriv tak, aby to fungovalo, tzn delalo to co ma, vracelo vysledky, ktere potrebuju. Vykon vubec neresim. V dnesni dobe je velka sance, ze to co povazujes za problem je uz davno vyreseno nekym jinym, napr pomuze nejaka cache nebo v pripade databaze zafunguje vestavena optimalizace apod. No a teprve kdyz mi program funguje a zda se mi, ze potrebuje optimalizovat, tak se tim zacnu zabyvat. To nemusi byt jen rychlost, ale treba i mnozstvi obsazene pameti nebo neco dalsiho. Zkousim teda ruzne upravy a finty, ale bacha - nedelam to naslepo, ale vzdycky merim to co optimalizuju. A tady je dulezite, ze uz jsem pred optimalizaci mel funkcni celek, takze mam s cim porovnavat, jestli ta optimalizace pomohla, a jak moc.
Takze na Tvem miste bych zkusil nejprve tu nejjednodussi variantu, tedy tahat vse jednim jednoduchym dotazem. Zmeril bych cas, ktery to zabere. A pak bych to zkusil volat jako dva dotazy, nebo jeden dotaz s unionem, nebo cokoliv dalsiho Te napadne, a zase bych to zmeril. Tim dostanes objektivni vysledky.
Ja uz dlouho profesionalne pracuju s databazema, hlavne MSSQL a ORACLE, a u vsech plati takova obecna vec. Vetsina uloh jde provest nekolika ruznymi zpusoby a zaroven nikdy zadny navod nebo prirucka nerekne, ze nejaky zpusob je vzdycky lepsi nez jiny. Je to proto, ze nikdo nezna ta konkretni data, se kterymi zrovna Ty v danou chvili pracujes. Takze dotaz tady na foru je fajn jako inspirace, jakymi ruznymi zpusoby napsat ten select, ale potom to vyhodnoceni, co je rychlejsi, uz bude na Tobe.