Hi Chris/Connor,
I came across below two piece of codes where only difference is "ALTER SESSION FORCE PARALLEL DML PARALLEL 16"
Can you please help to understand if we need to perform DELTE using parallelism, do i need to write both ALTER SESSION ENABLE PARALLEL DML & ALTER SESSION FORCE PARALLEL DML PARALLEL 16 ? or only ENABLE PARALLEL session will help here..
declare
begin
OPEN cur_get FOR SELECT * FROM table a;
loop
fetch cur_get bulk collect into rec_collection limit 5000;
exit when rec_collection.COUNT = 0;
EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL DML';
EXECUTE IMMEDIATE 'ALTER SESSION FORCE PARALLEL DML PARALLEL 16';
FORALL i IN 1..rec_collection.COUNT
DELETE /*+ PARALLEL(table a,16) */ FROM table a
WHERE ..
..;
COMMIT;
end loop;
end;
declare
begin
OPEN cur_get FOR SELECT * FROM table a;
loop
fetch cur_get bulk collect into rec_collection limit 5000;
exit when rec_collection.COUNT = 0;
EXECUTE IMMEDIATE 'ALTER SESSION ENABLE PARALLEL DML';
FORALL i IN 1..rec_collection.COUNT
DELETE /*+ PARALLEL(table a,16) */ FROM table a
WHERE ..
..;
COMMIT;
end loop;
end;