From: | Matt Clarkson <mattc(at)catalyst(dot)net(dot)nz> |
---|---|
To: | Mark Kirkwood <mark(dot)kirkwood(at)catalyst(dot)net(dot)nz> |
Cc: | Simon Riggs <simon(at)2ndQuadrant(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Gavin Flower <gavinflower(at)archidevsys(dot)co(dot)nz>, "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: In progress INSERT wrecks plans on table |
Date: | 2013-05-07 07:19:25 |
Message-ID: | 1367911165.32561.7.camel@matt-ultrabook |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-performance |
On Tue, 2013-05-07 at 18:32 +1200, Mark Kirkwood wrote:
> On 07/05/13 18:10, Simon Riggs wrote:
> > On 7 May 2013 01:23, <mark(dot)kirkwood(at)catalyst(dot)net(dot)nz> wrote:
> >
> >> I'm thinking that a variant of (2) might be simpler to inplement:
> >>
> >> (I think Matt C essentially beat me to this suggestion - he originally
> >> discovered this issue). It is probably good enough for only *new* plans to
> >> react to the increased/increasing number of in progress rows. So this
> >> would require backends doing significant numbers of row changes to either
> >> directly update pg_statistic or report their in progress numbers to the
> >> stats collector. The key change here is the partial execution numbers
> >> would need to be sent. Clearly one would need to avoid doing this too
> >> often (!) - possibly only when number of changed rows >
> >> autovacuum_analyze_scale_factor proportion of the relation concerned or
> >> similar.
> >
> > Are you loading using COPY? Why not break down the load into chunks?
> >
>
> INSERT - but we could maybe workaround by chunking the INSERT. However
> that *really* breaks the idea that in SQL you just say what you want,
> not how the database engine should do it! And more practically means
> that the most obvious and clear way to add your new data has nasty side
> effects, and you have to tip toe around muttering secret incantations to
> make things work well :-)
We also had the same problem with an UPDATE altering the data
distribution in such a way that trivial but frequently executed queries
cause massive server load until auto analyze sorted out the stats.
--
Matt Clarkson
Catalyst.Net Limited
From | Date | Subject | |
---|---|---|---|
Next Message | Simon Riggs | 2013-05-07 07:33:36 | Re: In progress INSERT wrecks plans on table |
Previous Message | Christoph Berg | 2013-05-07 06:51:47 | [patch] Adding EXTRA_REGRESS_OPTS to all pg_regress invocations |
From | Date | Subject | |
---|---|---|---|
Next Message | Simon Riggs | 2013-05-07 07:33:36 | Re: In progress INSERT wrecks plans on table |
Previous Message | Mark Kirkwood | 2013-05-07 06:32:20 | Re: In progress INSERT wrecks plans on table |