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