From: Steve Howard on
I have a statement as below:

INSERT /*+ APPEND */ INTO emp
SELECT /*+ PARALLEL (temp_emp, 4) */ FROM temp_emp

As you can see, SELECT is set to perform in 4 processes. Will the
insert also be executed by 4 parallel processes without the explicit
PARALLEL hint in the insert clause, since the select is done in
parallel? Or do I have to add the parallel hint in the insert clause
also as below?

INSERT /*+ APPEND PARALLEL(emp, 4) */ INTO emp
SELECT /*+ PARALLEL (temp_emp, 4) */ FROM temp_emp

Thanks in advance.
From: R.S. on
hello Steve,
It's one operation and it works like this:

INSERT /*+PARALLEL (EMP, 4) */ into EMP select * from temp_emp

Take a look at Rollback/undo segs and you'll notice the Parallel hint does
a direct write
just like the APPEND.
Set table Emp to nologging for the best speed; and do a commit (or
rollback ) right afterwards.
And perhaps ALTER SESSION ENABLE PARALLEL DML before ?

Cheers
Roelof, DBA

"Steve Howard" schreef ...
> I have a statement as below:
>
> INSERT /*+ APPEND */ INTO emp
> SELECT /*+ PARALLEL (temp_emp, 4) */ FROM temp_emp
>
> As you can see, SELECT is set to perform in 4 processes. Will the
> insert also be executed by 4 parallel processes without the explicit
> PARALLEL hint in the insert clause, since the select is done in
> parallel? Or do I have to add the parallel hint in the insert clause
> also as below?
>
> INSERT /*+ APPEND PARALLEL(emp, 4) */ INTO emp
> SELECT /*+ PARALLEL (temp_emp, 4) */ FROM temp_emp
>
> Thanks in advance.