Pouziti autoincrementu

Honza Pazdziora adelton na informatics.muni.cz
Úterý Červen 17 13:51:47 CEST 2003


On Tue, Jun 17, 2003 at 01:40:52PM +0200, Jan Serak wrote:
> >V MySQL nedostanete, leda si napsat UDF, ktera v nejake pomocne
> >tabulce (sequences :-) bude mit jmena sekvenci a aktualni hodnoty
> >a bude vydavat cisla. Cili si napsat podporu sekvenci uzivatelsky.
> 
> Mmch. jsme tuto techniku s uspechem pouzili i v Oracle. Puvodni jedna 
> sekvence (ted nemyslim databazovy objekt, ale ciselnou radu) se v 
> prubehu zivota aplikace rozrostla nejprve do 77 a pak do 154. Oracle8i 

V cem bylo spatne/neoptimalni pouzit nativni sekvence (databazove
objekty)?

> sice ma v PL/SQL prikaz EXECUTE IMMEDIATE, ktery vykona prikaz ulozeny v 
> retezcove promenne, ovsem musi vzdy parsovat a je to nechutne pomale.
> 
> Pro OLTP to vsak prudce nedoporucuju - izolace konkurujicich si procesu 
> by musela byt na urovni transakce, coz by zjevne brzdilo celkovou 
> pruchodnost databaze.

No, ted co mame autonomni transakce, tak by nemel byt problem udelat
ten

update sequences set value = value + 1 where name = ? returning value into ?

mimo transakce, takze dve paralelne bezici transakce, ktere by obe
chtely dalsi sekvencni cislo, by se vzajemne nezamykaly.

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
 .project: Perl, mod_perl, DBI, Oracle, auth. WWW servers, XML/XSL, ...
		Only self-confident people can be simple.


Další informace o konferenci Test