Oracle a zamky(Re: Multiuzivatelsky SQL server)
Honza Pazdziora
adelton na informatics.muni.cz
Čtvrtek Říjen 7 11:01:58 CEST 1999
> > s multiuzivatelskosti nic spolecneho, rpotoze pokud pustim treba na
> > Oraclu transakci, tak mi to taky samozrejme zamkne celou tabulku.
> Uchylujeme se od puvodniho tematu, ale FLEK.
>
> Oracle nema explicitni zahajeni transakce, takze transakce
> zacina jakoukoli zmenou stavu databaze v ramci session (tedy i
Ano.
> INSERTem).
> INSERT nezamyka nic, DELETE a UPDATE zamyka pouze zaznamy.
No, s tim insertem -- treba tabulka s primarnim klicem je velmi
vhodnym adeptem pro zamykani.
> Explicitne lze zaznam zamknout SELECT ... FROM ... WHERE ... FOR UPDATE.
> Cela tabulka se musi zamcit pomoci LOCK TABLE ...;
> Vsechny zamky trvaji do provedeni COMMITu nebo ROLLBACKu.
>
> Jednoduchy dukaz:
> Ze dvou session lze spustit napr. UPDATE disjunktni mnoziny zaznamu,
> aniz by nektery z procesu zustal cekat na uvolneni zamku nad tabulkou
> druhym z nich (tj. az provede commit nebo rollback).
Ano, omlouvam se, interne jsem si zmatl terminologii. Dokud paralelne
bezici transakce sahaji na disjunktni mnoziny zaznamu, tak bezi
soucasne, cili dochazi k zamykani na urovni zaznamu / bloku dat. Diky
za flek.
------------------------------------------------------------------------
Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
.project: Perl, DBI, Oracle, MySQL, auth. WWW servers, MTB, Spain, ...
------------------------------------------------------------------------
Další informace o konferenci Databases