Moliti ću vas za pomoć i smjernice kako da ovo najbezbolnije riješim prije nego što portošim sate kodirajući pa da na kraju vidim da sam
fulio u planiranju jer mislim da imam puno podataka pa da ispočetka moram raditi na optimizaciji
Poslovni zadatak je slijedeći:
Na ulazu robe na lager kontrolisati da zaliha robe za to skladište i tu grupu artikala ne prekorači optimalnu vrijednost zalihe za iste.
Optimalna vrijednost zalihe odgovara ostvarenoj realizaciji u proteklih X dana za spomenutu dato skladište i datu grupu arikala.
U samoj bazi i tabelama to izgleda na slijedeći načina
Tabela Lager (trenutno stanje zalihe) 1,5 miliona rekorda strukrura " Skladište","Artikal","Količina","Cijena" --Na njoj moram kontrolisati da vrijednost ne pređe Optimum
Tablea Artikala 122.000 zapisa struktura "Naziv","referenca na grupu"
Tablea Grupa 190 zapisa
Tabela Skladišta 70 zapisa
I još imam tablele robnih dokumenat na osnovu koji ću računati optimum.
Po nekoj standardnoj proceduri pirjedlog je da uradim slijedeće
Napraviti ću novu tabelu koja ce imati strukturu "skladište","grupa","optimum"
Istu tabelu ću puniti u nekom vremenskom intervalu kako bi održavao pravilo optimuma (neki noćni režim)
Poslije zapisa ili update lagera triger će raditi slijedeće
Prvo gledati da li vrijednost lagera raste ili opada
Ukoliko opada onda neće vršiti nikakavu kontrolu jer se tu radi o izlaznom dokumentu,
Ukoliko raste uzeti će novo nastalu sumu za tu grupu i to skladište te istu porediti sa optimumom u tablici optimuma
Ako vrijednost lagera bude veća od optimuma uraditi će Risse error kako i EPR mogao uraditi rollback transakcije i prikazati poruku korisniku da je prekoračne optimum za pojedinu grupu arikala
Sada moje pitanje napokon:
Smijem li se na ovu količinu podataka igrati sa trigerima i čuvati transakciju otvorenu dok uradim proračun. (šta će se dogoditi sa ostalim transakcijama dok on ovo bude računao),
Da li će to uopšte prestavljati problem SQL2005 sa 4GB rama SCSI diskovima u RADI5 konfiguraciji i nekih 200 korisnika ?
Mislim da je baza naštima da radi Read Uncomited,
Da li ću smanjiti vrijeme računjanja ukoliko stavim FK indexe na tablicu optimuma prema tablici grupa i tablici skladišta.
Na koji bi način mogao bezbolno osvježavati tablicu Optimuma u toku radnog dana, Jer mogući je slučaj da je u noćnom režimu optimum imao jednu vrijednost kada je radni dan počeo
napravljeno je puno računa i sada je vrijdnost optimuma porasla? kako to sada doati na postojeći optimum ?
Da li možda da probam držati na nekom satnom nivuo pored optimumuma i vrijednost zalihe u totalu kako ne bi svaki put morao tračti kroz milion i pol rekorda da nađe total i poredi isti.
Da li je glupo ili uopće moguće da Triger radi na osnovu uskladištene procdeure,
Unaprijed zahvalan na bilo kojoj smjernici ili savjetu.
Kada urdim prvi prijednog trigera objaviti ću ga ovdije.
P.S.
Izvinite ako sam vas upeglao sa pitanjem ali ovako sam se natjerao da svoj problem stavim na papir i da sagledam situaciju sa Više strana
,a to kada pišem širom auditorijumu mnogo bolje izgleda. Naspram kada samom sebi nacriatm dvije šeme na bjelom listu papira.
Znam da bi ovo bolje bilo uraditi kontolu prije otpočinjanja bilo kakave transakcije ali Ja jednostavno to nisam u mogućnosti, Jer nisam vlasnik koad EPR-a
Sve što mogu je uraditi RISEERROR koji će zasstaviti zaključenje ulaznog dokumenta i prikazati poruku koja je išla uz risse error.