Starší komentáře ke článku: SqlDataAdapter a zobrazení stromové struktury Repeaterem v ASP.NET

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

Avatar

Autor komentáře: Honza Votava

Datum vložení: 23.8.2004 17:28:55

Moc hezky priklad. Jenom nevim: jestli bylo ucelem zbavit se rekurze, pak se to nepodarilo. a jestli bylo ucelem zbavit se opakovaneho dotazovani, pak se to taky nepodarilo. jen se nedotazuji sql serveru, ale "dotazuji" se DataTable. A nejsem si jist, jestli to bude opravdu vzdycky ta vyhodnejsi varianta.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 23.8.2004 17:40:36

IMHO "dotazovat se" virtuální tabulky v operační paměti aplikačního serveru je vždy výhodnější, než se opakovaně "dotazovat" databázového serveru... ;-)

Avatar

Autor komentáře: Honza Votava

Datum vložení: 23.8.2004 18:15:18

Pozor na velké kvantifikátory ;) 1) SQL server má k dispozici indexy, které DataTable nemá / musí vytvořit (?). 2) Aplikační server může a nemusí být tentýž stroj jako SQL server. 3) procedura dbo.GetServerMap musi vratit vsechny radky, ktere se daneho konkretniho stromu, ktery chcete zobrazit, tykaji. To znamena a) vratit celou tabulku, a to urcite nebude vyhodne. b) sestavit na SQL serveru cely strom a ten pak vratit. Vase metoda jej pak jeste jednou sestavuje na aplikacnim serveru.

Resenim, kterym skutecne odbourate rekurzi muze byt jiny zpusob ulozeni stromu v sql. Mam na mysli nested set model (<a href='http://interval.cz/__redirect/redirect.asp?what=interval_discussion&url=http://www.developersdex.com/gurus/articles/112.asp)' target='_blank'>http://www.developersdex.com/gurus/articles/112.asp)</a>.

Jinak nechci nijak hanet vas prispevek: Me se libi. Jen neodstranuje rekurzi, jak v uvodu naznacuje. ;-)

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 23.8.2004 19:17:26

Pozor, já nejsem autorem článku. V předchozím diskusním příspěvku jsem pouze prezentoval svou vlastní zkušenost. Domnívám na jejím základě, že režie prostředků, potřebná pro navázání spojení s SQL serverem (ať už je to fyzicky stejný stroj či není), provedení dotazu a vrácení jeho výsledku, bude prakticky vždy vyšší než režie opakovaného přístupu do virtuální tabulky v operační paměti aplikačního serveru. Nemluvil jsem o rekurzi a uznávám, že optimalizace databázových struktur spolu s použitím optimalizovaného nebo úplně jiného aplikačního algoritmu může být efektivnější, než v článku popisované řešení. Možná by nejlepším východiskem bylo symbiotické spojení obou postupů ;-)

Avatar

Autor komentáře: Miki

Datum vložení: 18.8.2007 12:06:36

Zdravím a děkuji za přínosný článek. Při implementaci tohoto řešení jsem narazil na následující problém. Autor píše že při vypisování dat používá přímé přetypování místo standardního Eval proto aby zvýšil výkon aplikace. Z toho mi vyplývá, že by za cenu zmenšení výkonu Eval použít šel. No a nejde, jediná konstrukce, která mi úspěšně vypisuje data je autorovo (((DataRow)((RepeaterItem)Container).DataItem)[...]), což mi moc nevyhovuje... Za případnou radu předem moc děkuji.

Avatar

Autor komentáře: lubean

Datum vložení: 18.8.2007 18:24:43

Co znamená "No a nejde..." ? Takto se vyjadřuje vývojář žádající o radu jiného kolegy? Jak může někdo poradit, kde je chyba, když zde není žádný příklad onoho kód, co "nejde" ?

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