Starší komentáře ke článku: JDO - dědičnost tříd a pokročilé dotazy

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: elpa

Datum vložení: 4.4.2005 18:04:34

Ze by zrovna toto melo byt povazovano za pokrocily dotaz... Za pokrocily dotaz povazuji v terminologii SQL (left)joinovani vice tabulek. To, co prezentuje clanek lze povazovat za banalni problem. Zajimalo by me, zda v JDO lze resit automatizovane problem "joinovani".

Avatar

Autor komentáře: Radek Burget

Datum vložení: 4.4.2005 19:34:11

Hodnocení "pokročilé" bylo míněno spíše v porovnání s možnostmi dosud prezentovanými v předchozích dílech. Automatizované "joinování" v podstatě vyplývá ze vztahů objektů 1:N a M:N popsaných v minulém díle. Např. přečtení objektu obsahujícího kolekci jiných objektů lze přirovnat k joinu, protože na relační úrovni je takový vztah reprezentován dvěma nebo třemi tabulkami (podle typu relace). V praxi se ovšem při čtení takových objektů nečtou všechna data naráz, jak by to udělal SQL příkaz JOIN, ale data jednotlivých objektů se čtou až při prvním přístupu k nim (přechod z Hollow do jiného stavu).

Avatar

Autor komentáře: elpa

Datum vložení: 11.4.2005 18:32:51

Spekuluji (pokud to nebylo jiz uvedeno v minulych dilech), ze implementace JDO nakonec stejne nekde hluboko vede k SQL dotazum. Proto, nezda se Vam, ze JDO vykonnostne zrovna rekordy netrha? Vzdyt zpracovavat napr. 3 vystupni sady namisto jedne pri M:N vazbe je ne prilis optimalni. Pouzil byste JDO pro rozsahlejsi webove aplikace pripadne entrprise intranety?

Avatar

Autor komentáře: Radek Burget

Datum vložení: 11.4.2005 22:20:42

Máte pravdu, implementace JDO komunikuje s databázovým serverem pomocí SQL, koneckonců moc jiných možností ani nemá. Například u JPOX stačí povolit ladící výpisy a veškeré SQL dotazy uvidíte. Obecně se samozřejmě jedná o další vrstvu mezi aplikací a databázovým serverem, která logicky nějakou režii má. Na druhou stranu, JDO se nachází na poněkud vyšší úrovni abstrakce než SQL a je více provázané s Javovskou aplikací. Má tudíž více informací o struktuře a způsobu použití dat aplikací a proto se zde otevírá prostor pro optimalizace, které relační server dělat nemůže. Závisí na konkrétní implementaci JDO, nakolik se bude zabývat optimalizací SQL a dalších věcí. Na stránkách JPOX se praví, že výkon není prioritou vývoje. Oproti tomu Speedo nějakou snahu jeví, má například cache persistentních objektů, což je zrovna vlastnost, která se v SQL napodobuje těžce. Bohužel jsem dosud neměl příležitost nasadit JDO v tak rozsáhlém a výkonostně náročném projektu, abych mohl v tomto směru činit nějaké závěry. Pokud má někdo nějaké podrobnější poznatky, moc bych uvítal jejich přidání do diskuse.

Zpět na článek | Úvodní stránka Interval.cz