[ White @ 11.08.2010. 12:59 ] @
Pozdrav,
zanima me kako na Oracle 10g bazi mogu da iskoristim više jezgara prilikom unosa/čitanja podataka. Primetio sam da kada se izvršava jedan složen upit nad velikom bazom, iskorišćeno je samo jedno jezgro. Da li bi dobio na brzini ako bih napravio više veza na istu bazu (threadova) i svakom zadao da izvrši drugačiji upit (simultani UPDATE polja). Koji su načini da iskoristim sva jezgra?
[ djoka_l @ 11.08.2010. 13:58 ] @
Na osnovu tvog pitanja, pretpostavljam da koristiš Oracle bazu za vežbanje, a ne profesionalno. Naravno da Oracle zna da iskoristi sve procesore/jezgra u višekorisničkom okruženju.

Ono što tebe zanima je, verovatno, da li jedan proces može da radi u paraleli na više procesora/jezgara. I na to je odgovor da, ukoliko imaš Enterprise Edition verziju baze.

Operacije koje se mogu paralelizovati su Data Pump (da se u paraleli imortuju podaci), Backup&Recovery, Index building i na kraju kveriji se mogu paralelizovati.
Kod UPDATE naredbe paralelizacija se može uraditi samo ako je tabela particionisana (znači, osim Enterprise Edition baze moraš da licenciraš i Partitionig option i da ti tabela nad kojom radiš UPDATE bute particionaisana) i to paralelizam se ostvaruje nad particijama (svaki od paralelnih procesa može da apdejtuje u okviru jedne particije).

Kod upita, paralelizam može da se ostvari ako nad nekom tabelom u upitu mora da se uradi full table scan. Da bi ovo proverio, potrebno je da znaš da protumačiš execution plan kverija.

Da bi se upit izvršio u paraleli, potrebno je u SELECT dodati hint (PARALLEL ili PARALLEL_INDEX). Korišćenje ovih hintova i analiza execution plana izlazi iz okvira jedne teme na forumu i mog slobodnog vremena da to objasnim. Pogledaj u Oracle literaturu...