Pogledajte određenu poruku
Staro 19. 02. 2009.   #4
DejanVesic
old school
Professional
 
Avatar DejanVesic
 
Datum učlanjenja: 15.06.2005
Lokacija: Novi Beograd
Poruke: 448
Hvala: 21
70 "Hvala" u 46 poruka
DejanVesic će postati "faca" uskoro
Thumbs up

U dva projekta sa sličnom tematikom sam radio sledeće:

- generišem niz od 0 - 999,999 elemenata gde

Kôd:
a[i] = i, i = 0 .. 999,999
- izaberem kulturan RND generator i:


Kôd:
rnd1 = NextRnd();
rnd2 = NextRnd();

for(j=0; j < 1,000,000; j++) 
{
    swap(a[rnd1],a[rnd2]);
    rnd1 = NextRnd();
    rnd2 = NextRnd();
}
Kreiram dve tabele:

MAXUSED( Current int);

Randoms( RecNo Int PK, Value Int);

U MaxUsed ide inicijalno samo jedan slog, Current = 0;

Randoms popunim sa:


Kôd:
for(j=0; j < 1,000,000; j++) 
{
    INSERT INTO RANDOMS( j, a[j]);
}
Sad, kako ko dođe na sajt:

- zaključam prvi slog (i jedini) od MaxUsed, pokupim vrednost (nextToUse), uvećam za jedan i vratim u prvi slog

- dohvatim slog br. nexToUse (po indeksu iz Randoms) i vrednost (Value)

Ovako imam intenzivan proces jednom (kada se radi deployment projekta) a posle trivijalne operacije koje su jako brze (update jednog sloga, select drugog).
__________________
http://www.vesic.org | Blog: http://www.vesic.org/blog/ | Fina kolekcija programa: http://www.vesic.org/programi/
DejanVesic je offline   Odgovorite uz citat