Re: PARALLEL hint ignored in PL/SQL block?

From: jaromir nemec <jaromir_at_db-nemec.com>
Date: Thu, 31 Jul 2008 20:16:37 +0200 (CEST)
Message-ID: <57945.213.162.65.110.1217528197.bloek@pwebmail6.utanet.at>


Hi Vladimir,

> When following DML is executed standalone
>
> Insert into tableA select /*+ parallel(B) parallel(C) */ * from
> tableB_at_link B, tableC_at_link C where <some conditions>;
>
> tableB and tableC are accessed in parallel and everything is fine.
>
> However, if this is executed within PL/SQL block (or within stored
> procedure), tableB and tableC are not accessed in parallel. What may be
> the reason for this behavior?

Some hints that may help:

  1. Please verify that you use the hint comments in PL/SQL (I expect that you do so). New versions of PL/SQL "eat" ordinary comments.
  2. Verify the Select issued on the remote DB. Are parallel hints passes correctly, i.e. with right aliases?

You will see something like this on the remote DB SELECT / *+ PARALLEL("A1",3) PARALLEL("A2",3) * / ..... FROM table "A1" ....

c) as a possible workaround you may try to run the insert in parallel, something like
insert /*+ APPEND PARALLEL(i,3) */ into table i select ....
Don’t forget to enable parallel DML.
This brings me to the question isn't it possible that you PL/SQL session hat disabled parallel query per default?

Regards,

Jaromir

--
http://www.freelists.org/webpage/oracle-l
Received on Thu Jul 31 2008 - 13:16:37 CDT

Original text of this message