Re: Chytre knihy o swingu
Ahoj, vyborna knizka o Swingu je Swing od Robinsona a Voribieva. Nejaky kapitoly se poflakujou i po internetu. Tlusta, detailni kniha. Vazba na praci daty je u EJB tak trochu samozrejma, ne? Proste jsou to beany, takze neni treba resit, kdy se maji data ukladat a jak tahat z databaze, staci udelat modely tabulek, listu... Mozna mi neco unika :) Vazby Swingovych komponent na databazi AFAIK dela nejaky projekt, tusim, ze jsem ho videl na swinglab.org, urcite bude na java.net. aubi On Fri, 06 Oct 2006 15:41:00 +0200, URBAN Leos wrote: Ahoj, neprimo odkazuji na prispevek Lukase B. s prosbou zda mi nekdo nemuze doporucit podobne chytre knihy pro Swing? Nejlepe neco kde by byla rozebrana nejaka aplikace pro praci s daty (umyslne nepisu databazi protoze bych radsi EJB3 ale to bych asi chtel moc). Ja jsem stale ve stavu kdy to sice napisu ale na konci mam pocit ze se to melo delat nejak jinak :-((( Diky a hezky vikend, Leos Ja bych spis doporucil knihy o RCP. Dobre jsou: **Eclipse Rich Client Platform: Designing, Coding, and Packaging Java(TM) Applications*
Re:Konference Digest, Vol 23, Issue 6
Lukas Barton wrote: Ge wrote: Zdravím, je pěkné používat zámky read/write, ale myslim že to není zaručená cesta k úspěchu. Ja radím použít některý framework, například Hibernate. Ten řeší operace nad databází transakčně. Znamená to uživatel požaduje data, Hibernate mu je vrátí, uživatel změní jejich stav, a Hibernate (na požádání nebo automaticky) uloží změny do databáze (v transakci). Tím se vyhneš souběhu a dalším nepříjemnostem. Je dobre použít k Hibernate Spring, ten ti práci s trasakcema ještě více zjednodušší. V podstatě se o ně nebudeš muset starat. Hibernate jsem použil na několik projektů a práce je opravdu jednoduchá. Stačí trochu proniknout do ORM. Problem je v tom, pokud chcete uzivateli data zobrazit na formular k editaci. To uz potom nemuze bezet v transakci. Tam je nejlepsi spravne reseni verzovani zaznamu, pripadne jak psal Dagi coarse grained locking (verzovani). Dalsi problem je pokud chcete menit v jedne transakci hodne dat, potom pri pesimistickem zamykani dostanete dost nizkou propustnost - viz teorie databazi a ruzne izolacni urovne transakci. Ale tam uz zalezi na vice faktorech - jak objekty (tabulky) menite (zavislosti na prectenych hodnotach), zda umi vase databaze MVCC (to by vubec bylo na dlouho), apod. Na ORM se porad divam jako na nastroj, ktery mi umoznuje rozumne pohodlne obalit JDBC. ORM proste nektere problemy nevyresi - vyresit nemuze, protoze ma pod sebou jen relacni databazi. Je napr. nesmysl to pouzivat pro batch processing (proste to nemuze fungovat dost rychle) apod. Lukas doufam že odpovídám na tvůj dotaz Ondra. Ahoj Lukasi. Nevím jestli tě správně chápu. Tak jen aby bylo jasno. :) Kdyz používáš zámky, můžeš si zamknout data, ktera chceš editovat (updatovat), jakmile změníš data, uložíš změny a zámky odstraníš. Při transakčním zpracování, nemůžeš započat transakci při zobrazení editačního formuláře. Transakci nastartuješ až při samotné změně, ne při zobrazení dat pro editaci uživateli. Pokud databáze umí řešit transakce efektivně, a přiznám se že tak hluboko jsem se jeste nedostal, (abych odlišil jak řeší transakce různé SRBD), tak by mělo vše proběhnout hladce. Pokud potřebuješ data těsně po načtení uzamknout, protože je budeš chtít editovat, a záleží ti na tom aby si uživatelé navzájem nepřepisovali data, můžeš i v Hibernate uzamknout data. Například session.lock(t, LockMode.READ);. Se zámky jsem jestě nepracoval a nevím jaké přesně jsou tam potíže, ale vypadá to jednoduše a příjemně :). Ondra.
Re:Konference Digest, Vol 23, Issue 6
From: Honza wrote: Dekuji za odpoved, jedna ale se o dvouvrsvou aplikaci s tlustym klientem takze Hibernate pouzit nemuzu... A obavam se ze samotna DB transakce Vas pred konkurentnim pristupem neochrani ani trochu. Ta totiz zarucuje jenom konzistenci dat zpracovanych v ramci te transakce... Honza Ge napsal(a): Zdravím, je pěkné používat zámky read/write, ale myslim že to není zaručená cesta k úspěchu. Ja radím použít některý framework, například Hibernate. Ten řeší operace nad databází transakčně. Znamená to uživatel požaduje data, Hibernate mu je vrátí, uživatel změní jejich stav, a Hibernate (na požádání nebo automaticky) uloží změny do databáze (v transakci). Tím se vyhneš souběhu a dalším nepříjemnostem. Je dobre použít k Hibernate Spring, ten ti práci s trasakcema ještě více zjednodušší. V podstatě se o ně nebudeš muset starat. Hibernate jsem použil na několik projektů a práce je opravdu jednoduchá. Stačí trochu proniknout do ORM. doufam že odpovídám na tvůj dotaz Ondra. Ahoj Honzo, hibernate by měl podporovat i zámky, takže bys to mohl vyřešit i s ním. Na tlusteho klienta můžeš taky klidně použít Hibernate a co se týče dvou vrstev, tak 1. vrstva view a 2. vrstva logika s přístupen do databáze? Naopak si myslím že by byl Hibernate ideální. Jestli máš DB hotovou, použíj třeba na http://www.visual-paradigm.com/product/dbva/nb/ pro vygenerování presistentních objektů a mapujících dokumentů. Stranu databáze budeš mít hotovou. tento nástroj ti vygeneruje i nějake DAO, ale doporučuji naimplementovat vlastní. S vygenerovaným DAO je více prace při upravách a ke všemu to není DAO v pravém významu, je to takové pseudo DAO. :) Ber to prosím jako radu, myšleno v dobrem. Nebo jsem tě špatně pochopil a tím pádem mě ignoruj... Je asi jasne že nebudeš předělávat hotovou aplikaci ikdyz kdo ví, možná by to za to stálo. Ja jsem takto dělal dvě aplikace, a vývoj byl velmi rychlý. Přeju pěkný den. Ondra.
SQL SUM Statement - Performace tuning
Dobry den, Chtel bych se zeptat, jestli neexistuje najakym RYCHLY zpusobem (tuning), jak ziskat pomoci SQL SUM, Sumu z tabluky citajici pres 30mil zaznamu. Jinimy slovy: zabranit pokazde full-table-scan. PS: Pouziti funkcniho indexu neni mozne, kvuli agregacni funkci SUM. Opravte me, jestli se mylim. Dekuji Robert Vilhelm Zadani: Pouzivam Oracle 9.2i CREATE TABLE tabulka( id NUMBER(18) NOT NULL, sloupec NUMBER(18) NOT NULL, CONSTRAINT tabulka_pk PRIMARY KEY ( id ) ); tabulka ma pres 30mil zaznamu SELECT SUM(sloupec) FROM sloupec; __ Kreditwerk Hypotheken-Management GmbH Janderstraße 7-8 D-68199 Mannheim Tel. + 49 (621) 87557-0 Fax: +49 (621) 87557-111 Geschäftsführer: Beate Stollenwerk Bernd Meier Manfred Lund Sitz der Gesellschaft: Handelsregister: Mannheim Amtsgericht Mannheim HRB 8345 http://www.hypotheken-management.com Als Inkassobüro zugelassen __
Re: SQL SUM Statement - Performace tuning
Toto na mojich 20 milionoch riesim cez agregacnu tabulku, ked sa mi meni master, updatnem si aj agregacnu tabulku. Da sa urobit cez triger alebo na strednej vrstve. Citát Vilhelm, Robert [EMAIL PROTECTED]: Dobry den, Chtel bych se zeptat, jestli neexistuje najakym RYCHLY zpusobem (tuning), jak ziskat pomoci SQL SUM, Sumu z tabluky citajici pres 30mil zaznamu. Jinimy slovy: zabranit pokazde full-table-scan. PS: Pouziti funkcniho indexu neni mozne, kvuli agregacni funkci SUM. Opravte me, jestli se mylim. Dekuji Robert Vilhelm Zadani: Pouzivam Oracle 9.2i CREATE TABLE tabulka( id NUMBER(18) NOT NULL, sloupec NUMBER(18) NOT NULL, CONSTRAINT tabulka_pk PRIMARY KEY ( id ) ); tabulka ma pres 30mil zaznamu SELECT SUM(sloupec) FROM sloupec; __ Kreditwerk Hypotheken-Management GmbH Janderstraße 7-8 D-68199 Mannheim Tel. + 49 (621) 87557-0 Fax: +49 (621) 87557-111 Geschäftsführer: Beate Stollenwerk Bernd Meier Manfred Lund Sitz der Gesellschaft: Handelsregister: Mannheim Amtsgericht Mannheim HRB 8345 http://www.hypotheken-management.com Als Inkassobüro zugelassen __
Re: Chytre knihy o swingu
V tomhle ohledu zustavam zcela verny springu. A proto pouzivam i Spring-RCP. Builduji si to sam, vzdycky tak jednou za mesic (stahnu z SVN a spustim mavena, uplne jednoduche :)). Zatim jsem se dostal do faze, ve ktere mi u zchodi komplet cele GUI a jeste dodelavam server. Data Bindig, je resen jako formularove modely. Nakonec vsechno ukladam pres Spring + Hibernate, ale samozrejme by nebylo problem pouzit Spring JPA. Ze startu mi sice chvili trvalo, nez jsem se do toho dostal. Spoustu veci je nutno pochopit ze zdrojaku, ale kdyz je pochopite, tak to uz jde jak po masle. Takze ja doporucuju Spring RCP Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) Java a Delphi programator PHP a JavaScript skrypter Tvurce databazovych aplikaci A cestinarsky ignorant Ahoj, odpovídám na zprávu z pátku, 06. října 2006, kterou URBAN Leos napsal(a) v 15:41:00: Já jsem přesně v tom stejném stavu. Postupně stále zkouším nové a nové postupy, ale žere to dost čas. Ono navíc není řečeno, že i kdyby taková kniha byla a popisovala tam nějaký konkrétní postup, že by ten postup byl nejlepší. Zatím jsem se uchýlil k Hibernate, JPA, JGoodies databinding a občas ještě něco navíc. Však zde napište, co považujete za nejlepší a třeba se najde někdo, kdo navrhne něco lepšího a pro ty další to bude tip, co zase naopak zkusit. --- Původní zpráva --- Odesilatel: URBAN Leos [EMAIL PROTECTED] Předmět: Chytre knihy o swingu Datum: 6. října 2006, 15:41:00 (GMT +0200) Přílohy: none msgid:[EMAIL PROTECTED] U Ahoj, U neprimo odkazuji na prispevek Lukase B. s prosbou zda mi nekdo nemuze U doporucit podobne chytre knihy pro Swing? U Nejlepe neco kde by byla rozebrana nejaka aplikace pro praci s daty U (umyslne nepisu databazi protoze bych radsi EJB3 ale to bych asi chtel moc). U Ja jsem stale ve stavu kdy to sice napisu ale na konci mam pocit ze se U to melo delat nejak jinak :-((( U Diky a hezky vikend, U Leos Ja bych spis doporucil knihy o RCP. Dobre jsou: **Eclipse Rich Client Platform: Designing, Coding, and Packaging Java(TM) Applications* Konec původní zprávy
RE: SQL SUM Statement - Performace tuning
To mu se chci vyhnout, ale pokud nic dalsiho nenajdu... Mockrat dekuji Robert -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Rastislav Rehak Sent: Montag, 9. Oktober 2006 11:22 To: Java Subject: Re: SQL SUM Statement - Performace tuning Toto na mojich 20 milionoch riesim cez agregacnu tabulku, ked sa mi meni master, updatnem si aj agregacnu tabulku. Da sa urobit cez triger alebo na strednej vrstve. Citát Vilhelm, Robert [EMAIL PROTECTED]: Dobry den, Chtel bych se zeptat, jestli neexistuje najakym RYCHLY zpusobem (tuning), jak ziskat pomoci SQL SUM, Sumu z tabluky citajici pres 30mil zaznamu. Jinimy slovy: zabranit pokazde full-table-scan. PS: Pouziti funkcniho indexu neni mozne, kvuli agregacni funkci SUM. Opravte me, jestli se mylim. Dekuji Robert Vilhelm Zadani: Pouzivam Oracle 9.2i CREATE TABLE tabulka( id NUMBER(18) NOT NULL, sloupec NUMBER(18) NOT NULL, CONSTRAINT tabulka_pk PRIMARY KEY ( id ) ); tabulka ma pres 30mil zaznamu SELECT SUM(sloupec) FROM sloupec; __ Kreditwerk Hypotheken-Management GmbH Janderstraße 7-8 D-68199 Mannheim Tel. + 49 (621) 87557-0 Fax: +49 (621) 87557-111 Geschäftsführer: Beate Stollenwerk Bernd Meier Manfred Lund Sitz der Gesellschaft: Handelsregister: Mannheim Amtsgericht Mannheim HRB 8345 http://www.hypotheken-management.com Als Inkassobüro zugelassen __ __ Kreditwerk Hypotheken-Management GmbH Janderstraße 7-8 D-68199 Mannheim Tel. + 49 (621) 87557-0 Fax: +49 (621) 87557-111 Geschäftsführer: Beate Stollenwerk Bernd Meier Manfred Lund Sitz der Gesellschaft: Handelsregister: Mannheim Amtsgericht Mannheim HRB 8345 http://www.hypotheken-management.com Als Inkassobüro zugelassen __
Re: SQL SUM Statement - Performace tuning
Jednou moznosti by bylo pouziti materialized view. Asi by zalezelo na konkretnich podminkach (jak casto pribyvaji zaznamy do prim. tabulky)... CREATE MATERIALIZED VIEW mv_tabulka REFRESH FAST ON COMMIT AS SELECT sum(sloupec) FROM tabulka zdravi, r. Vilhelm, Robert wrote: Dobry den, Chtel bych se zeptat, jestli neexistuje najakym RYCHLY zpusobem (tuning), jak ziskat pomoci SQL SUM, Sumu z tabluky citajici pres 30mil zaznamu. Jinimy slovy: zabranit pokazde full-table-scan. PS: Pouziti funkcniho indexu neni mozne, kvuli agregacni funkci SUM. Opravte me, jestli se mylim. Dekuji Robert Vilhelm Zadani: Pouzivam Oracle 9.2i CREATE TABLE tabulka( id NUMBER(18) NOT NULL, sloupec NUMBER(18) NOT NULL, CONSTRAINT tabulka_pk PRIMARY KEY ( id ) ); tabulka ma pres 30mil zaznamu SELECT SUM(sloupec) FROM sloupec; __ Kreditwerk Hypotheken-Management GmbH Janderstraße 7-8 D-68199 Mannheim Tel. + 49 (621) 87557-0 Fax: +49 (621) 87557-111 Geschäftsführer: Beate Stollenwerk Bernd Meier Manfred Lund Sitz der Gesellschaft: Handelsregister: Mannheim Amtsgericht Mannheim HRB 8345 http://www.hypotheken-management.com Als Inkassobüro zugelassen __
Re: SQL SUM Statement - Performace tuning
U takhle velkych tabulek bude mit optimizer sklon delat full tablescan casto, ne-li vzdy (http://relief.incad.cz/oracle9/server.920/a96533/optimops.htm#44852) . Ale nepomohl by nejaky partitioning tabulky a vyuzit spis paralelizace na pristupu k hardware (nejak urychlit I/O)? Dejte vedet co nakonec pomohlo. Zajime me to samotneho. Moje nejvetsi tabulka je na Oracle10gR2 a ma asi 2 miliony zaznamu. S tim problem nemam. Pavel Vilhelm, Robert napsal(a): Dobry den, Chtel bych se zeptat, jestli neexistuje najakym RYCHLY zpusobem (tuning), jak ziskat pomoci SQL SUM, Sumu z tabluky citajici pres 30mil zaznamu. Jinimy slovy: zabranit pokazde full-table-scan -- Pavel Vedral -- Nez mi poslete prilohu .doc, .xls nebo .ppt, prectete si, prosim, WWW stranku uvedenou na poslednim radku signatury: http://www.gnu.org/philosophy/no-word-attachments.cs.html
Re:Konference Digest, Vol 23, Issue 6
Ahoj Lukasi. Nevím jestli tě správně chápu. Tak jen aby bylo jasno. :) Kdyz používáš zámky, můžeš si zamknout data, ktera chceš editovat (updatovat), jakmile změníš data, uložíš změny a zámky odstraníš. Při transakčním zpracování, nemůžeš započat transakci při zobrazení editačního formuláře. Transakci nastartuješ až při samotné změně, ne při zobrazení dat pro editaci uživateli. Pokud databáze umí řešit transakce efektivně, a přiznám se že tak hluboko jsem se jeste nedostal, (abych odlišil jak řeší transakce různé SRBD), tak by mělo vše proběhnout hladce. Pokud potřebuješ data těsně po načtení uzamknout, protože je budeš chtít editovat, a záleží ti na tom aby si uživatelé navzájem nepřepisovali data, můžeš i v Hibernate uzamknout data. Například session.lock(t, LockMode.READ);. Se zámky jsem jestě nepracoval a nevím jaké přesně jsou tam potíže, ale vypadá to jednoduše a příjemně :). Vazne doporucuji nastudovat nejakou teorii k databazim. A taky se naucit rozlisovat uzivatelske a databazove transakce. Zamky jsou jedna z moznosti jak implementovat transakce (uvnitr databaze), dalsi moznosti jsou casova razitka nebo verzovani zaznamu. Vas vsak zajima jen izolacni uroven transakci, jak to databaze implementuje vevnitr ma smysl vedet, az pri ladeni vykonu. Cteni dat take probiha v databazove transakci. To co budete delat vy, je ze nactete data z databaze v jedne transakci a zobrazite je na formulari. Ve druhe transakci chcete potom zmenena data ulozit, ale mezitim je nekdo rychlejsi mohl prepsat. Tomu se lze prave tim verzovanim nebo zamykanim zaznamu. Lukas
Re: SQL SUM Statement - Performace tuning
Jednou moznosti by bylo pouziti materialized view. Asi by zalezelo na konkretnich podminkach (jak casto pribyvaji zaznamy do prim. tabulky)... Teoreticky spravne by bylo porovnat: (pocet_dotazu_SUM * pocet_stranek_tabulky) a (pocet_UPDATU_tabulky * 2 + pocet_dotazu_SUM) Prvni je pocet cteni pro SUM s table scanem, druhe je rezie na agregacni tabulku. Lukas
Re: Synchronizace persistentnich objektu
A není možné tohle už nějak řešit na úrovni Hibernate? Dost bych se divil, že by H neměl podporu pro řešení tohoto problému. Jakub Mirek Stohr wrote: Presne vasi situaci (malo velkych stromu) mam taky. Resim to, jak jsem jiz napsal, verzovanim, a verzi vlastni kazdy objekt ve stromu (resp., kazdy objekt u ktereho to dava smysl, tj. objekt, ktery mohu nejakym zpusobem editovat). V pripade zapisu do db se zvetsi verze nikoliv pouze objektu, ktery byl editovan, ale i objektu na stejne vetvi az po koren, cimz zajistim konzistenci stromu. Ma to nevyhodu ze muze byt odmitnut zapis naprosto nesouvisejicich zmen, ale pomer cteni/zapis v moji aplikaci je natolik velky, ze jsem zvolil tuto strategii (tj. zvolil jsem mirny pesimismus v optimisticke strategii :-)) Mirek Lukas Barton napsal(a): Honza wrote: Dekuji za odpoved. Optimisticke zamikani vypada docela slibne. Nicmene vezmneme nasledujici priklad. Objekty v mem systemu se radi do samostatnych stromu. Techto stromu bude docela malo v pomeru s tim jak jsou velike. Zamykat jenom podstromy by bylo dost slozite, takze budu muset zamykat koren. Pouziji-li optimisticky lock znamena to ze si dva uzivatele budou moci soucasne otevrit ten samy strom a pracovat v nem (pridavat/prohlizet/menit/mazat listy), ale zmeny se podari ulozit jenom tomu kdo jako prvni klikne save a commitne svoji transakci. Druhemu uzivateli by pak bylo sdeleno ze jeho zmeny nelze ulozit. Z tohoto duvodu me prijde schudny jedine pesimisticky pristup. Nicmene stale premyslim jak to implementovat a jedine co me napada pridat do DB sloupecek ktery bude zamek identifikovat a tim se ridit. Dalsi problem vidim v trvanlivosti takovychto zamku a taky jak zajistim ze v jine session nedojde k nejake chybe a zamek se neuvolni. Je periodicke obnovovani zamku spravne reseni? Je to jedno z moznych reseni, ale jakekoliv pesimisticke zamky prinasi problemy - viz ten timeout zamku. Zajimave je to popsano v clanku http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/concurev4M.asp Tam se doctete, co dal by mohlo pomoci: - uzivatel vlastni svoje data (toto pouzivame ve 2,5 vrstve aplikaci taky, spolu s verzovanim) - pouzivate navrhovy vzor business actions neboli postings (v podstate chytrejsi verzovani dat) - omezte dobu po jakou muze uzivatel editovat sva data, bez ziskani nove verze - zvetste granularitu moznosti editace (napr. povolte pouze jednu zmenu struktury ve stromu a po ni synchronizujte verze se serverem) Do teto polozky by se moje aplikace dala zaradit. Verzovanim si v podstate vyrabite situaci kdy: - zapis neblokuje cteni - cteni neblokuje zapis Tj. MVCC, ktere v posledni dobe na urovni databaze zavedli/zavedou dalsi 3 produkty (MS SQL od verze 2005, DB2 na PC (verzi zpameti nevim a Informix (pristi verze). Tuto funkcionalitu uz delsi dobu ma Oracle (od verze 6 nebo 7), od uplneho zacatku Interbase (Firebird), PostreSQL a MySQL InnoDB. Lukas
Re: Synchronizace persistentnich objektu
Neslo, nepouzivam Hibernate :-)) Mirek Jakub Příkazský napsal(a): A není možné tohle už nějak řešit na úrovni Hibernate? Dost bych se divil, že by H neměl podporu pro řešení tohoto problému. Jakub Mirek Stohr wrote: Presne vasi situaci (malo velkych stromu) mam taky. Resim to, jak jsem jiz napsal, verzovanim, a verzi vlastni kazdy objekt ve stromu (resp., kazdy objekt u ktereho to dava smysl, tj. objekt, ktery mohu nejakym zpusobem editovat). V pripade zapisu do db se zvetsi verze nikoliv pouze objektu, ktery byl editovan, ale i objektu na stejne vetvi az po koren, cimz zajistim konzistenci stromu. Ma to nevyhodu ze muze byt odmitnut zapis naprosto nesouvisejicich zmen, ale pomer cteni/zapis v moji aplikaci je natolik velky, ze jsem zvolil tuto strategii (tj. zvolil jsem mirny pesimismus v optimisticke strategii :-)) Mirek Lukas Barton napsal(a): Honza wrote: Dekuji za odpoved. Optimisticke zamikani vypada docela slibne. Nicmene vezmneme nasledujici priklad. Objekty v mem systemu se radi do samostatnych stromu. Techto stromu bude docela malo v pomeru s tim jak jsou velike. Zamykat jenom podstromy by bylo dost slozite, takze budu muset zamykat koren. Pouziji-li optimisticky lock znamena to ze si dva uzivatele budou moci soucasne otevrit ten samy strom a pracovat v nem (pridavat/prohlizet/menit/mazat listy), ale zmeny se podari ulozit jenom tomu kdo jako prvni klikne save a commitne svoji transakci. Druhemu uzivateli by pak bylo sdeleno ze jeho zmeny nelze ulozit. Z tohoto duvodu me prijde schudny jedine pesimisticky pristup. Nicmene stale premyslim jak to implementovat a jedine co me napada pridat do DB sloupecek ktery bude zamek identifikovat a tim se ridit. Dalsi problem vidim v trvanlivosti takovychto zamku a taky jak zajistim ze v jine session nedojde k nejake chybe a zamek se neuvolni. Je periodicke obnovovani zamku spravne reseni? Je to jedno z moznych reseni, ale jakekoliv pesimisticke zamky prinasi problemy - viz ten timeout zamku. Zajimave je to popsano v clanku http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/concurev4M.asp Tam se doctete, co dal by mohlo pomoci: - uzivatel vlastni svoje data (toto pouzivame ve 2,5 vrstve aplikaci taky, spolu s verzovanim) - pouzivate navrhovy vzor business actions neboli postings (v podstate chytrejsi verzovani dat) - omezte dobu po jakou muze uzivatel editovat sva data, bez ziskani nove verze - zvetste granularitu moznosti editace (napr. povolte pouze jednu zmenu struktury ve stromu a po ni synchronizujte verze se serverem) Do teto polozky by se moje aplikace dala zaradit. Verzovanim si v podstate vyrabite situaci kdy: - zapis neblokuje cteni - cteni neblokuje zapis Tj. MVCC, ktere v posledni dobe na urovni databaze zavedli/zavedou dalsi 3 produkty (MS SQL od verze 2005, DB2 na PC (verzi zpameti nevim a Informix (pristi verze). Tuto funkcionalitu uz delsi dobu ma Oracle (od verze 6 nebo 7), od uplneho zacatku Interbase (Firebird), PostreSQL a MySQL InnoDB. Lukas
Re: SQL SUM Statement - Performace tuning
Ahoj, s readom z velkych tabuliek je vzdy trosku problem. Prva vec ktoru by si si mal asi ujasnit kolko dat odtial vyberas? Guru cez databazy v byvalej firme na jednom skoleni povedal ze ak sa vydera z databazy viac ako 30 % dat oplati sa aby oracle pouzil fullscan (sekvencny read blockov je rychlejsi ako range index scan). Do tejto tabulky len pribudaju zaznamy alebo ich odtial aj mazes? (oracle si udrzuje tzv. high water mark ktory mu hovory kolko blockov dana struktura obsahuje. ak data aj mazes tento high water mark moze byt nastaveny na pomerne vysoku hodnotu - pomoze drop-create, resp. truncate na upratanie prazdnych blockov. High water mark je dolezity pri fullscane.) Ak potrebujes menej dat tak skus pozriet explain plan a skusit oracle prinutit ist cestou ktora je dobra. To mozes dosiahnut spustenim statistik nad danou strukturou, resp hintovat query (s tymto asi opatrne, aj ked niekedy neni inej cesty.) Zaujmave este moze byt aka je dana struktura siroka (kolko stlpcov obsahuje, kolko riadkov sa zmesti do blocku (tu by malo zase platit cim menej blockov tym rychlejsi fullscan). Michal. On 09/10/06, lukas [EMAIL PROTECTED] wrote: Jednou moznosti by bylo pouziti materialized view. Asi by zalezelo na konkretnich podminkach (jak casto pribyvaji zaznamy do prim. tabulky)... Teoreticky spravne by bylo porovnat: (pocet_dotazu_SUM * pocet_stranek_tabulky) a (pocet_UPDATU_tabulky * 2 + pocet_dotazu_SUM) Prvni je pocet cteni pro SUM s table scanem, druhe je rezie na agregacni tabulku. Lukas
Re: SQL SUM Statement - Performace tuning
Na to jak urychlit takovýto select, znám pouze 2 způsoby. 1 . Vytvořit agregační tabulku, která se bude plnit v triggerch a sumovat to v ní jak potřebuji 2. Vytvořit index, který bude obsahovat sloupec co sumuji a zároveň všechyn sloupce dle kterých vybírám nebo groupuji. Potom se použije index scan a ne ful table scan. Index scan je rychlejší, (předpokládám že sloupců v indexu je MNOHEM méně než sloupců v tabulce, jinak to nemá smysl = je menší než tabulka a jeho scan je proto rychlejší) Indexem samozřejmě zvětšíte objem databáze + přidáte nějakou režii na jeho aktualizaci při každé změně. Použitím triggeru vytvářejícího agregaci nad base tabulkuu zase snižujete propustnot víceuživatelské změny dat v base tabulce, ale objem dat v agregaci bude výrazně menší než objem indexu. Takže rozhodnout to musíte sám. Radek Dobry den, Chtel bych se zeptat, jestli neexistuje najakym RYCHLY zpusobem (tuning), jak ziskat pomoci SQL SUM, Sumu z tabluky citajici pres 30mil zaznamu. Jinimy slovy: zabranit pokazde full-table-scan. PS: Pouziti funkcniho indexu neni mozne, kvuli agregacni funkci SUM. Opravte me, jestli se mylim. Dekuji Robert Vilhelm Zadani: Pouzivam Oracle 9.2i CREATE TABLE tabulka( id NUMBER(18) NOT NULL, sloupec NUMBER(18) NOT NULL, CONSTRAINT tabulka_pk PRIMARY KEY ( id ) ); tabulka ma pres 30mil zaznamu SELECT SUM(sloupec) FROM sloupec; __ Kreditwerk Hypotheken-Management GmbH Janderstraße 7-8 D-68199 Mannheim Tel. + 49 (621) 87557-0 Fax: +49 (621) 87557-111 Geschäftsführer: Beate Stollenwerk Bernd Meier Manfred Lund Sitz der Gesellschaft: Handelsregister: Mannheim Amtsgericht Mannheim HRB 8345 http://www.hypotheken-management.com Als Inkassobüro zugelassen __
Re: Chytre knihy o swingu
Ahoj, odpovídám na zprávu z pondělka, 09. října 2006, kterou Benda Lukas napsal(a) v 11:39:58: Docela rád bych na tohle viděl nějakou ukázku :-( Já tady před nějakým týdnem přesně popsal ve zprávě s předmětem DB - formulář (hibernate,JGoodies Binding,cglib). Alespoň kdyby jste mi mohl říct, zda je vámi používaný postup, tedy Spring PRC ve výsledku jednodušší než to, co jsem popsal já. Nebo v čem je výhoda. --- Původní zpráva --- Odesilatel: Benda Lukas [EMAIL PROTECTED] Předmět: Chytre knihy o swingu Datum: 9. října 2006, 11:39:58 (GMT +0200) Přílohy: none msgid:[EMAIL PROTECTED] B V tomhle ohledu zustavam zcela verny springu. A proto pouzivam i B Spring-RCP. Builduji si to sam, vzdycky tak jednou za mesic (stahnu z B SVN a spustim mavena, uplne jednoduche :)). B Zatim jsem se dostal do faze, ve ktere mi u zchodi komplet cele GUI a B jeste dodelavam server. Data Bindig, je resen jako formularove modely. B Nakonec vsechno ukladam pres Spring + Hibernate, ale samozrejme by B nebylo problem pouzit Spring JPA. B Ze startu mi sice chvili trvalo, nez jsem se do toho dostal. Spoustu B veci je nutno pochopit ze zdrojaku, ale kdyz je pochopite, tak to uz jde B jak po masle. B Takze ja doporucuju Spring RCP B Lukas benzin Benda ([EMAIL PROTECTED]; http://benzin.bloguje.cz) B Java a Delphi programator B PHP a JavaScript skrypter B Tvurce databazovych aplikaci B A cestinarsky ignorant Ahoj, odpovídám na zprávu z pátku, 06. října 2006, kterou URBAN Leos napsal(a) v 15:41:00: Já jsem přesně v tom stejném stavu. Postupně stále zkouším nové a nové postupy, ale žere to dost čas. Ono navíc není řečeno, že i kdyby taková kniha byla a popisovala tam nějaký konkrétní postup, že by ten postup byl nejlepší. Zatím jsem se uchýlil k Hibernate, JPA, JGoodies databinding a občas ještě něco navíc. Však zde napište, co považujete za nejlepší a třeba se najde někdo, kdo navrhne něco lepšího a pro ty další to bude tip, co zase naopak zkusit. --- Původní zpráva --- Odesilatel: URBAN Leos [EMAIL PROTECTED] Předmět: Chytre knihy o swingu Datum: 6. října 2006, 15:41:00 (GMT +0200) Přílohy: none msgid:[EMAIL PROTECTED] U Ahoj, U neprimo odkazuji na prispevek Lukase B. s prosbou zda mi nekdo nemuze U doporucit podobne chytre knihy pro Swing? U Nejlepe neco kde by byla rozebrana nejaka aplikace pro praci s daty U (umyslne nepisu databazi protoze bych radsi EJB3 ale to bych asi chtel moc). U Ja jsem stale ve stavu kdy to sice napisu ale na konci mam pocit ze se U to melo delat nejak jinak :-((( U Diky a hezky vikend, U Leos Ja bych spis doporucil knihy o RCP. Dobre jsou: **Eclipse Rich Client Platform: Designing, Coding, and Packaging Java(TM) Applications* Konec původní zprávy Konec původní zprávy -- - Tomáš Procházka E-mail: [EMAIL PROTECTED] WWW: http://atom.sf.cz ICQ: 87147320 -