Forum » Programiranje » [SQL] Oracle DB lock-i
[SQL] Oracle DB lock-i
MrStein ::
dbms_lock paket to omogoča, ampak metoda allocate_unique implicitno izvede COMMIT, kar moti.
Kaj je alternativa?
Ustvariti DUMMY tabelo* in jo (zlo)rabiti kot lock objekt?
* oziroma več, za vsak namen en. Alternativno ena tabela in se lockajo njene vrstice.
Oracle verzija 11g2
Kaj je alternativa?
Ustvariti DUMMY tabelo* in jo (zlo)rabiti kot lock objekt?
* oziroma več, za vsak namen en. Alternativno ena tabela in se lockajo njene vrstice.
Oracle verzija 11g2
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
jernejl ::
Bo treba povedati kaj več o tem, kaj točno bi rad naredil.
Lock lahko pokličeš na začetku transakcije, preden se zgodi karkoli drugega.
Lahko pa uporabiš tudi dodatno tabelo.
Recimo dodatna tabela ključev v kombinaciji s "select kljuc into dummy from dodatna_tabela where kljuc=X for update" omogoča zaklep na nivoju ključa.
Lock lahko pokličeš na začetku transakcije, preden se zgodi karkoli drugega.
Lahko pa uporabiš tudi dodatno tabelo.
Recimo dodatna tabela ključev v kombinaciji s "select kljuc into dummy from dodatna_tabela where kljuc=X for update" omogoča zaklep na nivoju ključa.
Zgodovina sprememb…
- spremenil: jernejl ()
MrStein ::
Bo treba povedati kaj več o tem, kaj točno bi rad naredil.
Rad bi v proceduri nadzoroval dostop do neke množice podatkov. Dostop se lahko vrši iz več session-ov istočasno, zato locking.
Lock lahko pokličeš na začetku transakcije, preden se zgodi karkoli drugega.
Operacija, ki vsebuje lockanje je del večje transakcije.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Spura ::
Select for update omogoca zaklepanje podatkov za potrebe nadzorovanja sprememb. Ce imas nekaj kar ti izvede commit pa ti pac ne bo delalo. Pa tudi sicer je oracle en nestandarden vendor lock-in overpriced garbage.
MrStein ::
Slabost tega je, da lahko unlock-am le z COMMIT ali ROLLBACK, medtem ko dbms_lock.release dela neodvisno od transakcij.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
MrStein ::
dbms_lock paket to omogoča, ampak metoda allocate_unique implicitno izvede COMMIT, kar moti.
Možna (zaenkrat nepreverjena) rešitev je klicati allocate_unique enkrat pri zagonu programa in si vrednost (handle za dejanski lock object) zapomniti.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [SQL] primary key inkrementalno dodajanje (strani: 1 2 )Oddelek: Programiranje | 5474 (4664) | ejresnevem |
» | Nova različica podatkovne baze PostgreSQL 9.5 prinaša obilico novosti (strani: 1 2 )Oddelek: Novice / Ostala programska oprema | 17911 (14777) | McAjvar |
» | SQL stavek?Oddelek: Programiranje | 994 (899) | milc |
» | Oracle - kako sprožiti funkcijo vsak dan ob isti uriOddelek: Programiranje | 1028 (980) | majlo |
» | branje xml datoteke s SQL stavkomOddelek: Programiranje | 1418 (1343) | kopernik |