Re: Why index access is not happening in parallel
Date: Tue, 4 Jul 2023 20:36:00 +0100
Message-ID: <CAGtsp8k3q5x4+vBm5bWsovpPx80DLq2mrkdwaZTjROKkJAG8+A_at_mail.gmail.com>
Why would it do the insert in parallel when the notes (and other readers)
have already told you that PDML will have been disabled because of the
indexes on GTTs?
Since you've posted a new page to github I have looked at it - and any
further comment is based only on that page and not on any previous material
you may have posted.
On a totally separate train of thought - and one I'm not going to test, I'm
not even sure it would be legal - could you write a parallel-enabled
pipelined function that returns the data set that uses the GTT with the
indexes (hence hiding the GTTs) and write a query that joins the function
to the rest of the tables in the query.
Regards
On Sat, 1 Jul 2023 at 12:04, Pap <oracle.developer35_at_gmail.com> wrote:
> Recaptured the plan for both the INSERT and SELECT again as below and
The only point I was addressing in my comment was the one that hadn't been
raised by anyone else - the side effect of direct path loads and index
maintenance.
Jonathan Lewis
> after using Enable_parallel_dml the conventional insert does changed to
> 'Load as select' which means its doing direct path load, however as the
> note section showing , it's still not doing the write/Insert in parallel.
> and Majority of time and resources get spent while writing/Inserting
> records only.
>
> https://gist.github.com/oracle9999/8805315be86cc9b74c52609f73bb4e03
>
> On Sat, Jul 1, 2023 at 3:56 PM Pap <oracle.developer35_at_gmail.com> wrote:
>
>> Thank you Jonathan.
>>
>> Actually i posted two queries in this thread earlier (as below) one was
>> INSERT and Other was SELECT. Lothar pointed out in both of the cases the
>> execution time was spent in the query coordinator section and how the
>> complete execution path of the query was not happening in parallel. Some
>> parts were being serialized.
>>
>> https://gist.github.com/oracle9999/ff2073c222398416c8095d109c233765
>> https://gist.github.com/oracle9999/618251c1e48b315dc70c73e157443773
>>
>> In case of INSERT query as you see, the parallel execution was not
>> happening initially and it was enable_parallel_dml which was missing. But
>> after applying that hint, I got the below message in the Note section of
>> the query , which exposes the restriction which GTT is having in oracle.
>>
>> Note
>> -----
>> * - PDML disabled because temporary tables with indexes used*
>> - parallel query server generated this plan using optimizer hints from
>> coordinator
>>
>>
>>
-- http://www.freelists.org/webpage/oracle-lReceived on Tue Jul 04 2023 - 21:36:00 CEST