From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: Jeff Davis <pgsql@j-davis.com>
Cc: pgsql-hackers@postgresql.org
Subject: Re: Trouble with hashagg spill I/O pattern and costing
Date: Thu, 21 May 2020 20:34:05 +0200
Message-ID: <20200521183405.gq5oaarqs5gtqugt@development> (raw)
In-Reply-To: <d1da1e990cf9d564aa435c63e1eb26748d50c10f.camel@j-davis.com>
References: <20200519151202.u2p2gpiawoaznsv2@development>
<20200521134122.3rpmdolam4fgc5pv@development>
<20200521143040.zgn7ealdasfkmfcb@development>
<d1da1e990cf9d564aa435c63e1eb26748d50c10f.camel@j-davis.com>
On Thu, May 21, 2020 at 11:19:01AM -0700, Jeff Davis wrote:
>On Thu, 2020-05-21 at 16:30 +0200, Tomas Vondra wrote:
>> OK, it seems the attached trivial fix (simply changing CP_LABEL_TLIST
>> to
>> CP_SMALL_TLIST) addresses this for me.
>
>Great!
>
>There were a couple plan changes where it introduced a Subquery Scan.
>I'm not sure that I understand why it's doing that, can you verify that
>it is a reasonable thing to do?
>
>Aside from that, feel free to commit it.
>
It's doing that because we're doing projection everywhere, even in cases
when it may not be necessary - but I think that's actually OK.
At first I thought we might only do it conditionally when we expect to
spill to disk, but that'd not work for cases when we only realize we
need to spill to disk during execution.
So I think the plan changes are correct and expected.
I think we should do the pre-allocation patch too. I haven't tried yet
but I believe the tlist fix alone won't do nearly as good.
regards
--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: tomas.vondra@2ndquadrant.com, pgsql@j-davis.com
Subject: Re: Trouble with hashagg spill I/O pattern and costing
In-Reply-To: <20200521183405.gq5oaarqs5gtqugt@development>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox