OT poptavka programator ci firma

jirka7a@seznam.cz jirka7a@seznam.cz
Čtvrtek Leden 20 07:23:18 CET 2005


>No spise, jinak, problem, je, ze je treba ridit kontrolu ruznych
>aplikaci
>v dlouhem case, tam zamky nelze efektivne pouzit.
>Proto to resim trigry v DB (vetsinou).
>Stavove rizeni se mi velmi osvedcilo prave pri vytvareni zakazu editace,
>jelikoz tak jiny uzivatel dopredu vi, ze zaznam je uzamcen.

Stavove rizeni jsou vlastne zamky, ale nezamyka se v SQL, ale pouze 
stavem-priznakem- semaforem si nastavite ten zamek.

>> Ano, pri stisku klavesy je zde timeout a pokud uzivatel nic
>> dale nestiskne,
>> vse se da doopravdy jen u velmi omezenych tabulek.. Navic
>> kdyz ta tabulka ma
>> malo radku, tak zase to vubec SQL nezdrzi.
>Ono je totiz rozdil dotaz a dotaz :)).
>Pokud je tam nekolik SUM, GROUP BY, nebo statistickych vypoctu
>(potkava me to nejak casto), tak to da proste zabrat.
>Dale vyuzivam toho, ze mam cache na ciselniky, kdy
>se dotahuji jen ty zaznamy, ktere jsou treba, ale jen jednou.
>Omezuje to vyrazne trafic na siti a zaroven zrychluje vyslednou odezvu.

Group by máme v reportech a ty u nás nemáme při vyhledávání záznamů tj. v 
nějakém grid. V gridu to doopravdy nezdržuje. V jeden okamžik jsem měl i 
grid nad FB.

>> Hlavni vyhodou tohodle reseni je, ze se netahaji data po
>> siti, coz zdrzuje.
>Souhlas v pripade, ze je opravdu nepotrebujete.
>Jestli delate v delphi, tak jiste znate ClientDataSet, to je takova
>memory table, ktera umi prave i tridit a fitrovat a to velmi rychle.
>Tim si data nactu jen jednou a pak je klid, jelikoz ani po siti nic
>nestahuji.
Ja to chapu tak, ze tlusty klient je vlastne stejny jako inet stranka co se 
tyka rychlosti neboli poctu stahovanych dat. Kdyz si reknete tuto barieru, 
tak nedate do programu zadne nacteni hodne radku.


>> Na vykon toho MS SQL to nema vliv. Nejvetsi otazkou je
>> sdileni dat, kde
>> musite resit kolizni stavy zamku. Nedokazi si predstavit, ze
>> by zamek byl
>> pouze na celou tabulku. Asi bych tomu musel hodne uhnout logiku.
>Nezamykam, MGA vyzaduje jine mysleni, MS bude v nove verzi,
>jen nevim v ktere taky MGA (tohle nemam potvrzeno).
>V MGA kazdy update vytvori novy radek, kazdy radek ma svoji verzi
>a pri selectu se kontroluje, zda je radek videt, nebo ne.
>Ma to obrovske vyhody pri soucasnem pristupu vice uzivatelu
>k jedne tabulce, ale zaroven problemy s odstranovanim neplatnych verzi.
>Verze = poradove cislo transakce.
>Takze muze klidne bezet mnoho snapshot transakci, jelikoz selecty
>nejsou nikdy blokovany, problem muze nastat pouze pri kolizi zapisu
>a to se stava vyjimecne, ale musi se s tim pocitat.

On to je malinko jiny pristup. Jinak zamky doopravdy pouzvame v transakcich. 
On SQL server ma nekolik typu zamku share,update, ... . Je to dano taky 
ISOLATIO LEVEL. To prave ten Vas kolega s tim muze narazit. Standardne je 
read commited tj. jeden zastavi v prubehu druhy. SQL si optimalizuje co ma 
zamknout jestli radek, stranku, ... . Obcas dojde i deadlock, protoze si SQL 
optimalizuje stranku a ne radek. Jinak to je docela sluzny. V jedne aplikaci 
mame prepocitani, to se sklada z cca 100 sql prikazu. Spoustelo to cca 60 
uzivatelu behem 30 sec vkuse. Tam si jiz musite hrat a docela dost s 
nastavenim zamku.
Jirka 




Další informace o konferenci Hw-list