OT poptavka programator ci firma

jirka7a@seznam.cz jirka7a@seznam.cz
Středa Leden 19 14:41:27 CET 2005


K reseni kolizi:
1. Mate where s tim, ze je zde pouze prim klic (kazdy muze ulozit) a ten 
posledni vyhraje
2. Mate where s tim, ze jsou zde vsechny sloupce (kdyz si nactu doklad a 
ulozim, tak jej zmenim. Ostatni v prubehu transakce maji smulu a zobrazi se 
jim chyba, ze zaznam byl modifikovan jinym uzivatelem)
2 b To se ruzni od 2 jen v tom, ze se zde prida sloupec typu timestamp
Takto se to resi obecne, ale nejsou to zamky. Nevim jak se to jmenuje u 
ORAC.. a jake ma speciality.

Nyni k veci a k moznosti portaci napr. uvedene zamky.

Reseni zamku:
1. Spoustite transakci a chcete provest aktualizace
2. Pokud nenaridite zamky a nedate cele ve spravnem poradi, pak dochazi k 
deadlock ci chybam jak ohlasenym ci skrytym tj. napr. blbe se nahodne 
aktualizuje sklad.
3. Cele to muzete osetrit u MS SQL treaba select s hint(updlock), vlastne si 
nekde udelate semafor jako kdyz tady programujete s procesory a resite 
vlakna

Zamky v SQL muste nejak resit. Nechavat to jen tak je docela bordel.

Syntaxi, chovani se zpracovanim zamku je SQL od SQL ruzne tj. portace se cim 
dal vice zuzuje.
Dalsi vec jsou i slozitejsi zakladni select, update prikazy, ktere kazdy SQL 
dela jinak a hlavne i s jinou syntaxi.

Jirka
Jinak samozrejme, kde neni pozadavoan extra vykon, tak sevyplati si data 
stahnout na klienta. Ovsem ten kdo se naucil SQL, tak zjisti, ze  v SQL to 
jde v nekterych pripadech jednoduse a prehledne.



----- Original Message ----- 
From: "Slavomir Skopalik" <skopalik@elektlabs.cz>
To: "'HW-news'" <hw-list@list.hw.cz>
Sent: Wednesday, January 19, 2005 1:16 AM
Subject: RE: OT poptavka programator ci firma


Existuji dve architektury (zjednodusene).
Klasicka a multigeneracni.
Klasicka drzi v tabulce pouze jednu platnou verzi daneho radku
a vse se resi pres rollback segment (terminologie oracle).
Multigeneracni (MGA) drzi tolik verzi, kolik je treba.
Kazda se hodi na jine ucely, bohuzel taky kazda VYZADUJE jiny
pristup na aplikacni urovni.
MGA je mene nachylna na kolize (nemuze dojit na kolizi cteni a zapisu),
jedinna kolize muze nastat pri soubeznem zapisu.
Tohoto lze u MGA "vyuzit" k vytvoreni zamku pomoci FAKE UPDATE
(update bez jakekoliv zmeny).
Jinym resenim je verzovani zaznamu (jako sloupec), takto jsem resil
"zamykani" kdy klient si nacte zaznam, ukonci transakci, zaznam zmeni
a chce jej ulozit, zde je velmi dulezite aby nekdo (je z principu jedno
jestli prvni, nebo posledni, v tomto pripade posledni) dostal chybu.

Vse je ponekud zjednodusene, realita byva mnohem zabavnejsi. :))

Pro ty, co to zajima vice, prijedte do belohradu (www.haes.cz).

Slavek

>
> Prave, ja taky znam PB. Muzete naridit jak ma generovat
> where, ale ne zamky.
> Pro neznale:
> Kdyz se neco zmenilo, tak podminky ve where nevyhovi tj.
> nekdo predemnou
> udelal zmenu - ulozil doklad.
> Nekdy se tomu rika optimisticke zamykani nebo prvni vyharava.
> Podobne lze
> nastavit i v ADO. Lze nastavit i posledni vyhrava.
>
> Ovsem o zadny zamek SQL se nejedna.
>
> Kdyz potrebujete zamknout pri vydeji ze skladu a dalsich
> akci, tak musite
> trosku znat co MS SQL dela, pokud ne, tak narazite.
>
> Doopravdy se neda jen tak portovat aplikace se zamky a bez zamku to
> neudelate nebo jen prasecky tj. bez osetreni.

>
> To nevim, je to interni zalezitost powerbuildich datawindow.
> Nicmene bez jakekoliv sve napsane logiky jsem schopen, pri
> update zaznamu(ů) u kazdeho jednotliveho zjistit zda jej
> nekdo mezitim zmenil a jak a take jak s celou situaci
> nalozim. Datawindow v PowerBuilderu je to co je cela sila
> tohodle nastroje - jsou opravdu neuveritelne vymakane -
> zvlast pokud jedou nad materskym serverem.
>
> Zamykani zaznamu na SQL serveru je dost prasarna a myslim, ze
> tam ani neco takoveho neni. Cilem vseho snazeni je prave,
> zamcenych zaznamu bylo co nejmene - to ale nesouvisi jen s
> aplikaci, ale hlavne se zamykacim schematem na SQLku.
>
> Myslim, ze tohle uz je opravdu silne OT a pokud Vas neco
> jeste zajima radeji na privat do zamestnani (*@cpost.cz).
>
> RadekCX - http:/rvsoft.wz.cz

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list@list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list


-- 
Příchozí zpráva neobsahuje viry.
Zkontrolováno Antivirovým systémem AVG.
Verze: 7.0.302 / Virová báze: 265.6.13 - datum vydání: 16.1.2005





Další informace o konferenci Hw-list