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