Re: Adding a table to a join removes parallel execution

From: Sébastien de Mapias <sglrigaud_at_gmail.com>
Date: Wed, 5 Jun 2013 07:38:04 -0700 (PDT)
Message-ID: <064d98a9-eda1-4d79-b912-aff153da24dc_at_cl9g2000vbb.googlegroups.com>



I've further investigated and refined the cause of my issue: let's forget the difference between the old version of my view and the present one (with the extra table in the FROM block). I noticed that *if I remove* a subquery which appears in the SELECT block, my view uses parallel execution.

I have a subquery like "(SELECT DECODE (MIN (dr.remark_id), NULL, 'N', 'Y') FROM the_remarks dr WHERE dr.the_num = d.the_num) remark" in the select list: if I comment it now the optimizer uses parallel process, if I leave it, it doesn't. The 'd' alias refers to the table in the FROM block on which the parallel hint is specified.

So you have:
> select * from (
> select /*+ parallel (d 4) full(d) */
> ...
> (select decode(min(dr.remark_id), ... dr.the_num = d.the_num) remark,
> ...
> from the d, omstatus os, the_info di, the_tckt dt, summary dsum
> where [...])
> where cola = 'MKLJ' colb = 'POIU';

Funny behaviour isn't it ?
Any idea to put me on the right track ??

Thanks.
Seb Received on Wed Jun 05 2013 - 16:38:04 CEST

Original text of this message