Re: Performance degradation of REFRESH MATERIALIZED VIEW
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Tomas Vondra <tomas.vondra@enterprisedb.com>
Cc: Masahiko Sawada <sawada.mshk@gmail.com>, Michael Paquier <michael@paquier.xyz>, Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>, Pavan Deolasee <pavan.deolasee@gmail.com>, Anastasia Lubennikova <a.lubennikova@postgrespro.ru>, Jeff Janes <jeff.janes@gmail.com>, Paul Guo <guopa@vmware.com>
Date: 2021-05-11T17:25:00Z
Lists: pgsql-hackers
Hi, On 2021-05-11 16:07:44 +0200, Tomas Vondra wrote: > On 5/11/21 11:04 AM, Masahiko Sawada wrote: > > I think the changes for heap_multi_insert() are fine so we can revert > > only heap_insert() part if we revert something from the v14 tree, > > although we will end up not inserting frozen tuples into toast tables. > > > > I'd be somewhat unhappy about reverting just this bit, because it'd mean > that we freeze rows in the main table but not rows in the TOAST tables (that > was kinda why we concluded we need the heap_insert part too). Is there a reason not to apply a polished version of my proposal? And then to look at the remaining difference? > I'm still a bit puzzled where does the extra overhead (in cases when freeze > is not requested) come from, TBH. Intuitively, I'd hope there's a way to > eliminate that entirely, and only pay the cost when requested (with the > expectation that it's cheaper than freezing it that later). I'd like to see a profile comparison between those two cases. Best with both profiles done in master, just once with the freeze path disabled... Greetings, Andres Freund
Commits
-
Fix pg_visibility regression failure with CLOBBER_CACHE_ALWAYS
- d1f0aa769691 14.0 landed
-
Revert most of 39b66a91bd
- 8e03eb92e9ad 14.0 landed
-
Fix COPY FREEZE with CLOBBER_CACHE_ALWAYS
- 39b66a91bdeb 14.0 cited