[ knez06 @ 23.10.2008. 10:45 ] @
Molim sve koji znaju o čemu pričam da mi predlože koji rekabilni server je pametno koristiti za bazu "teshku" ~1GB.

Trenutno baza funkcioniše na 2 (obična, nerekabilna) servera, jednom baznom i jednom aplikativnom, ali sam totalno nezadovoljan brzinom rada, posebno kod mjesečnih obrada podataka, koje traju po 5h, sa opterećenjem CPU-a 100%.

Najvažniji podaci o postojećim serverima:

Bazni:
OS: Windows 2000 Server SP4
CPU: Dual Core Intel Xeon 3040 @ 1.866 GHz
Chipset: Intel Mukiteo-2 3000/3010
1GB RAM-a, mislim PC 3200

Aplikativni:
OS: Windows 2000 Server SP3
CPU: Dual Core Intel Xeon 3040 @ 1.866 GHz
Chipset: Intel Mukiteo-2 3000/3010
2GB RAM-a, mislim PC 3200

Ako imate neke predloge za promjene na sistemu Win2k Server, ili eventualne optimizacije, evo Vam slobodnog prostora da se izrazite.

Unaprijed hvala svima koji daju konstruktivne ideje.
Srdačan pozdrav.
[ djoka_l @ 23.10.2008. 14:25 ] @
Baza od 1GB ?!?!?!

Ako je to tačno, tebi problem uopšte nije sa serverom nego sa aplikacijom (vrlo mala verovatnoća da je problem sa tjuniranjem Oracle baze). Ono što bih ti ja preporučio je da dodaš u DB server još RAMa i da napraviš SGA bar 1GB (teoretski - cela bi ti baza bila u RAMu).

Ali obrada od 5 sati ukazuje na vrlo ozbiljne omaške u dizajnu baze. Pošto si iz Budve, preporučujem ti da pozoveš Montoru da vidi šta ti guši server, a ako je aplikacija kupljena, a ne in-house pozovi dobavljača aplikacije da sredi stanje. U svakom slučaju potraži koji SQL upiti troše najviše vremena i pogledaj njihove execution planove.

Dodatak: Uzgred, da li se još nešto vrti na DB serveru, osim baze? Ako nema drugih bitnih aplikacija koje guše server, ja bih ti preporučio da zameniš OS - stavi Linux (SuSE, RH ili neku od RH varijacija, na primer Fedora)

Dodatak 2: Ovi serveri oupšte nisu loši, možda da zameniš DB i Aplikativni, jer je 1GB stvarno malo za DB, ali i dalje ostaje problem aplikacije.
[ Ed Wood @ 25.10.2008. 10:38 ] @
Oracle baza od 1G je, da izvines, smesno mala baza! Sa bazom te velicine ne bi trebalo da imas nikakve performance probleme, cak i bez nekog narocitog fine-tuniga.

Ovi serveri koje imas su ti sasvim dovoljni za tako malu bazu, uz, naravno, dodatnih 1Gb kao sto lepo rece prethodni komentator. Cudi me da to vec niste probali. Oracle je tako koncipiran da (logicno) "zdere" memoriju. Tacnije, potrosi onoliko koliko mu das! Pa, cak ni obicna Windows Vista Home premium se "gusi" na 1G RAM-a, a kamo li jedan tako robustan sistem kao sto je Oracle RDBMS (nisi naglasio, jel koristis Enterprise Edition?) I, ne zaboravi, nije dovoljno da samo dodas modul od 1G RAM-a u server, mnogo je vaznije da prekonfigurises SGA tako da tu dodatnu moemoriju i alocira prilikom stratup-a. Narocitno je bitno da povecas "buffer cache", tj cache za same podatke iz tabela. Da sad ovde ne pricam o stalim cachevima koji su takodje bitni (PGA, Shared pool).

Za primer: ja trenutno odrzavam bazu veliku oko 140Gb, na HP rack serveru sa Xeon procesorom na 3Gh i sa SAMO 2Gb RAM-a i radi nam prilicno solidno, uz, naravno, neke spore upite, koje ja obicno resim tjuniranjem (hintovima najcesce, jer u dizajn baze ne smem da diram). A ti neki upiti koji su jako spori su takvi zato sto su "bolesno kompleksni", spajaju po 7-8 velikih tabela, sa neverovatno uslovima za selekciju, tako da po mom misljenju ovakav server cak iste izvrsava vrlo brzo. Drugi, iole jednostavniji upiti, rade savrseno dobro.

Sto se tice sporih batch obrada, one su po svojoj priordi SPORE, tako da 5h za neku obradu na tako "slabim" serverima i nije los rezultat. Medjutim, svaka batch obrada se finim tjuniranjem moze dovesti na vrlo prihvatljivo vreme izvrsavanja. Ali, takve akcije zahtevaju veliko znanje i iskustvo, koje se nalazi u knjigama kao sto je ona koju sam ja ponudio na ovom forumu, a NIKO pod milim bogom se nije za istu ni zainteresovao. A, za taj posao, konsultanti na zapadu naplacuju velike sume.
Sto se tice sporih batch obrada, savetujem ti da obratis paznju na to kako su ti indeksirane tabele, jer tu njacesce lezi odgovor na sve sto je sporo (upiti, batch obrade). Ja sam, recimo, jednu mesecnu batch obradu kod nas u firmi sveo sa 8-1o sati na samo 45 min, tako sto sam jednostavno drop-nuo sve indekse na toj tabeli, na kojoj su inace isti bili potpuno nepotrebi (citaj:igrali se programeri, tj. ucili se programiranju na Oracle-u). To je bio banalan slucaj, opet na drugim mestima sam spore batch obrade resio materijalizirajucim vjuovima, negde samo hintom, itd...

Jedina stvar oko koje se ne slazem sa Knezom, i licno ti savetujem da se NE upustas u tu avanturu je promena OS, na Linux i slino. Iz licnog dugogodisnjeg iksutva znam, ni Linux ni Unix ti nece doneti NIKAKVO poboljsanje na performnsama ako nemas dovoljno hardverskih resursa, a unece ti znacajnu kompleksnot u tvoj sistem, koju mozda ne zelis. Jer, raditi sa Linuxom ili unixima je znantno teze nego sa Windowsima, tako da, osim ako nisi Unix epert, ne upustaj se u tu avanturu. Sama instalacija Oracle na unixima je mnogo vece glavobolja nego na Windowsima. Uverio sam se da Oracle jako lepo radi na Windows Serverima, narocito 2003 (nikako professional, ne daj boze home edicije), ako je server dovoljno "jak" i ako je sam Oracle adekvatno tjuniran i ako je fizicki dizajn baze (broj i odnosi izmedju tabela, dizajn index-a) dobro izveden. I, naravno, pod uslovom da na tom Windows serveru niko osim DBA i sistem admiona ne "divlja" i "experimentise", bas kao sto (obicno) niko to ne radi sa Unix serverima (jer po svojo prirodi nisu zgodni za igranje), tj. poenta je da bude "cist i utegnut".
[ knez06 @ 27.10.2008. 07:39 ] @
Ljudi, hvala vam puno na odgovorima.
Ideja je potekla od priče zvane Linux. A vi mi ga baš i ne preporučujete.
Dakle, Vi (Ed Wood) mi ne preporučujete kupovinu novog servera kao neko trajno dobro rješenje, iako djoka_l misli da bi to bilo dobro rješenje?
A, ja i dalje mislim da bi sve to bolje radilo na jednoj jačoj mašini, zato što nema uskog grla zvanog LAN.
Da li mi preporučujete upgrade OS na neku od novijih verzija, obzirući se na činjenicu da Win2000 Server pokriva potrebe ostalog softvera?

[Ovu poruku je menjao knez06 dana 27.10.2008. u 10:51 GMT+1]

[Ovu poruku je menjao knez06 dana 27.10.2008. u 10:52 GMT+1]
[ djoka_l @ 27.10.2008. 14:53 ] @
Naprotiv, ni ja ne mislim da treba kupiti novi server. Moja sugestija je da se doda još RAM-a i da se, eventualno, stavi Linux. Jedino u vezi Linuxa se ne slažemo ja i Ed Wood.

Ja imam "pragmatičan" razlog za stavljanje Linuxa. Pošto me klijenti zovu kada postoje problemi sa performansama, mi stavljamo "utegnute" Linuxe jer smo 99% posto sigurni da ih administratori neće čačkati, kao što to rade sa Windows serverima.

Pitao sam, takođe, da li se na mašini vrti još nešto osim baze, jer iz iskustva sa windowsom - čest je slučaj da probleme sa performansama prave antivirusni programi i gomila softvera koje je neko skinuo za probu, a onda ostavio "repove" po sistemu.

Znači akcija bi bila - provera init.ora fajla (da se vidi kako je podešen SGA), provera upita koji dugo traju, pa ako to ne reši problem dodavanje RAMa.

Poslednja opcija je zamena mašine za noviju.

Uzgred, iz posta se ne vidi koja je verzija baze u pitanju. Jedan deo problema sa novijim verzijama baze je neažurna statistika (za baze već od verzije 9i, a za 10g i 11g statistika je obavezna). Ako postoji stara statistika, treba probati ANALYZE komandu, pa će možda optimajzer umeti da napravi bolji execution plan.
[ sava2v @ 15.11.2008. 11:19 ] @
Verovatno, moraš kupiti novi server. I moraš imati Linux. Nije korektno da zbunjujte čoveka, preporučujete svoje firme i firme svojih prijatelja i dajte sumnjive savete.

Kod ORACLA za performanse je najvažnije da se podaci i index razdvoje na dva fizički različita diska. To je elementarna stvar. Dobro je OS ostaviti na posebnom disku i tako se dođe do tri diska samim tim i novog kontrolera za disk. Ako se u priču uvede RAID onda broj diskova raste, pošto cena diskav više nije prevelika to može biti opcija. A i full export se ipak najbrže radi na local storage.

ORACLE 11 koji je pretpostvljam u pitanju, guta memoriju više nego ijedan drugi. 4 GB mu je malo. Nove aplikacije, po pravilu su vrlo user friendly, što opet znači da upiti koji se zadaju, mogu da butu vrlo zahtevni.... Stari Windows slabo podržavaju više od 4 GB memorije, novi to mogu, ali licence za sve (ORACLE+M$) to nisu opšte jeftine...

Za nove diskove još memorije, potrebna je i nova matična ploča. Kada je sve tu, onda treba imati i dobro napajanje.

Suma sumarum, više memorije, više diskova, troškovi nameštanja svega toga, logično rešenje je novi HW. U poslednje vreme ima to se može vrlo povolno on-line naručiti iz firmi USA koje su u tzv "solution partner" odnosima sa proizvođačima HW i SW. Takođe, možeš naći i firme koje pružaju remote support po vrlo prihvatljivim cenama. Dovoljno je da imaš internet i da im otvoriš putty port na routeru. Ostalo je njihova briga.