Link to home
Start Free TrialLog in
Avatar of psaju
psaju

asked on

How can I execute stored procedures in parallel from a stored procedure?

I need to run in parellel multiple stored procedures with in a stored procedure to attain better performance. Can someone please provide sample code?
Avatar of Fekrat El Wehedi
Fekrat El Wehedi
Flag of Canada image

Use one of Oracle's prepackaged APIs, the DBMS_JOB package, to submit multiple jobs to a job queue and then run them in parallel.
This is an example code i found on the web for a procedure that is not done in parallel
declare
   vStart number;
begin
   vStart := dbms_utility.get_time;
   
   Maintenance.RebuildIndex('ORDERS_PK', 'NOLOGGING PARALLEL');
   Maintenance.RebuildIndex('SALES_PK',  'NOLOGGING PARALLEL');
   Maintenance.RebuildIndex('ORDERS_AK1','NOLOGGING PARALLEL');
   Maintenance.RebuildIndex('SALES_AK1', 'NOLOGGING PARALLEL');
   
   dbms_output.put_line('Elapsed time: ' ||
      round((dbms_utility.get_time - vStart)/100, 2) || ' hsecs' );
end;
/

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Fekrat El Wehedi
Fekrat El Wehedi
Flag of Canada image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial