po 4. 11. 2019 v 6:17 odesílatel David Wheeler <dwhee...@dgitsystems.com>
napsal:

> >    To see this issue, you have to have recently
> >    inserted or deleted a bunch of extremal values of the indexed join-key
> >    column.  And the problem only persists until those values become known
> >    committed-good, or known dead-to-everybody.  (Maybe you've got a
> >    long-running transaction somewhere, postponing the dead-to-everybody
> >    condition?)
>
> There are no long-running transactions that have backend_xmin set in
> pg_stat_activity, if that's what you mean here. There are also no open
> prepared transactions or replication slots which I understand have a
> similar keeping-things-alive issue.
>
> These tables are biggish (hundreds of mb), but not changing so frequently
> that I'd expect large quantities of data to be inserted or deleted before
> autovac can get in there and clean it up. And certainly not in a single
> uncommitted transaction.
>
> I'll try reindexing each of the tables just to make sure it's not strange
> index imbalance or something causing the issue.
>

I seen this issue few time - and reindex helps.

Pavel


> Regards,
>
> David
>
> On 4/11/19, 4:01 pm, "Tom Lane" <t...@sss.pgh.pa.us> wrote:
>
>     David Wheeler <dwhee...@dgitsystems.com> writes:
>     > We’re having trouble working out why the planning time for this
>     > particular query is slow (~2.5s vs 0.9ms execution time). As you can
> see
>     > below, there are only 3 tables involved so it’s hard to imagine what
>     > decisions the planner has to make that take so long.
>
>     I wonder whether this traces to the cost of trying to estimate the
>     largest/smallest value of an indexed column by looking into the index.
>     Normally that's pretty cheap, but if you have a lot of
> recently-inserted
>     or recently-deleted values at the end of the index, it can get painful.
>     AFAIR this only happens for columns that are equijoin keys, so the fact
>     that your query is a join is significant.
>
>     I'm not convinced that this is the problem, because it's a corner case
>     that few people hit.  To see this issue, you have to have recently
>     inserted or deleted a bunch of extremal values of the indexed join-key
>     column.  And the problem only persists until those values become known
>     committed-good, or known dead-to-everybody.  (Maybe you've got a
>     long-running transaction somewhere, postponing the dead-to-everybody
>     condition?)
>
>     > Postgres version 9.5.19
>
>     If this *is* the cause, v11 and up have a performance improvement that
>     you need:
>
>
> https://git.postgresql.org/gitweb/?p=postgresql.git&a=commitdiff&h=3ca930fc3
>
>                         regards, tom lane
>
>
>

Reply via email to