Re: Chytre knihy o swingu

2006-10-09 Tema obsahu aubi
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

2006-10-09 Tema obsahu Ondřej Kvasnovský
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

2006-10-09 Tema obsahu Ondřej Kvasnovský
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

2006-10-09 Tema obsahu Vilhelm, Robert
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

2006-10-09 Tema obsahu Rastislav Rehak
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

2006-10-09 Tema obsahu Benda Lukas

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

2006-10-09 Tema obsahu Vilhelm, Robert
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

2006-10-09 Tema obsahu Robert Šimonovský
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

2006-10-09 Tema obsahu Pavel Vedral
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

2006-10-09 Tema obsahu lukas

 
 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

2006-10-09 Tema obsahu lukas

 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

2006-10-09 Tema obsahu Jakub Příkazský
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

2006-10-09 Tema obsahu Mirek Stohr

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

2006-10-09 Tema obsahu Michal Bocek

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

2006-10-09 Tema obsahu Ing. Radek Žuja

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

2006-10-09 Tema obsahu Tomáš Procházka
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
-