Re: Trouble with hashagg spill I/O pattern and costing
Tomas Vondra <tomas.vondra@2ndquadrant.com>
From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: Jeff Davis <pgsql@j-davis.com>
Cc: pgsql-hackers@postgresql.org
Date: 2020-05-21T18:34:05Z
Lists: pgsql-hackers
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
Commits
-
Use CP_SMALL_TLIST for hash aggregate
- 4cad2534da6d 13.0 landed
-
Avoid fragmentation of logical tapes when writing concurrently.
- 896ddf9b3cd7 13.0 landed