Re: Parallel Query Performance Issues

From: Jonathan Lewis <jlewisoracle_at_gmail.com>
Date: Thu, 9 Jun 2022 13:11:20 +0100
Message-ID: <CAGtsp8mQgOVqaWUJYg0RDpg1pvCrVTtJ2htJtWcjk3EQHbWdrQ_at_mail.gmail.com>



The two queries may return the same size result, but the 2019 report generates and aggregates roughly 12 times as much data as the 2018 report. Check the "Actual Rows" figures - the 2018 report hits 3M rows (and 3M execs of the subsequent table probes) while the 2919 report hits 39M rows/execs - and that's where a lot of time goes on CPU.

Strangely (almost) all the data is passed to one PX server (at operation 13/14, I think) that blows it up through segement NL joins to get most of the 39M rows that have to be "buffer sorted" (i.e. buffered, but not actually sorted) which is where the temp space and I/O time goes.

Possible workarounds

Regards
Jonathan Lewis

On Thu, 9 Jun 2022 at 12:15, Goti <aryan.goti_at_gmail.com> wrote:

> Environment : 11.2.0.4 database running on Linux.
>
> Need help to understand parallel query performance issues. Below are the
> query details and its associated plans. The 2018_query does execute in 24
> seconds and returns about 2.5K rows. The 2019_query is also expected to
> process almost the same number of rows however it consumes a lot of TEMP
> space and finally fails. The 2019_query without parallel completes in 45
> minutes (Just by removing the parallel hint). The only difference between
> both the queries is related to the predicate "opclf.year_number =
> to_number('YYYY')". The stats are up to date for the tables are partitions.
>
>
> 2019_query:
> https://gist.github.com/aryangoti/a7704a8075f118f7d942e49acee1900d
>
> 2018_query:
> https://gist.github.com/aryangoti/a7704a8075f118f7d942e49acee1900d
>
> Stats and other details:
> https://gist.github.com/aryangoti/a3797424ce0cb4fd87e194c05ad099b6
>
> Thanks,
>
> Goti
>

--
http://www.freelists.org/webpage/oracle-l
Received on Thu Jun 09 2022 - 14:11:20 CEST

Original text of this message