Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: How to push CPU to its fullest potential?
The phrases:
'big batch job' and 'PL/SQL' are the giveaway.
PL/SQL is single-threading - the only way to use 4 CPUs whilst a single session is running a single PL/SQL procedure is to have embedded SQL that can run through parallel query option - even then the result set will be passes back to a single line of PL/SQL execution.
General Guideline:
PL/SQL should not be used in big batch jobs other than a) util_file to write logs to files b) dbms_output to push logs to screen (2nd best) c) dbms_sql to generate and execute dynamic 'create object'statements
Jonathan Lewis
Robert Chung <robertch_at_mindspring.com> wrote in article
<3623ad2b.21944945_at_news.mindspring.com>...
>
> We have Oracle database running in parallel mode on AIX UNIX box
with
> four CPUs. We run a batch job (written in PL/SQL) that takes more
> than four hours everyday, and to my surprise, I found out that CPUs
of
> this AIX UNIX box almost always sit idle at least more than 60% of
the
> time while this big batch job is running. Why is this happening?
Is
> this because hard disks are the big bottle-neck? (but we do have
macho
> RAID devices hooked up to this server)
>
> I was assuming Oracle automatically distributes this one big batch
job
> to different processes in different CPUs. Is this false? If so,
what
> should I do to force distribution of processes in different CPUs?
> Thank you in advance.
>
> Robert
>
>
Received on Wed Oct 14 1998 - 17:06:44 CDT