» »

[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
Motiti se je človeško.
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.

Zgodovina sprememb…

  • spremenil: jernejl ()

MrStein ::

jernejl je izjavil:

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!

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!

MrStein ::

MrStein je izjavil:

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!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[SQL] primary key inkrementalno dodajanje (strani: 1 2 )

Oddelek: Programiranje
515478 (4668) ejresnevem
»

Nova različica podatkovne baze PostgreSQL 9.5 prinaša obilico novosti (strani: 1 2 )

Oddelek: Novice / Ostala programska oprema
5717911 (14777) McAjvar
»

SQL stavek?

Oddelek: Programiranje
7994 (899) milc
»

Oracle - kako sprožiti funkcijo vsak dan ob isti uri

Oddelek: Programiranje
51028 (980) majlo
»

branje xml datoteke s SQL stavkom

Oddelek: Programiranje
51418 (1343) kopernik

Več podobnih tem