From: | Jeff Janes <jeff(dot)janes(at)gmail(dot)com> |
---|---|
To: | didier <did447(at)gmail(dot)com> |
Cc: | Jesper Krogh <jesper(at)krogh(dot)cc>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Kevin Grittner <kgrittn(at)ymail(dot)com>, Bartłomiej Romański <br(at)sentia(dot)pl>, "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: Planner performance extremely affected by an hanging transaction (20-30 times)? |
Date: | 2013-09-24 23:30:21 |
Message-ID: | CAMkU=1xJjPV-6aQZHn7-RSH3cBzEO6ENxoGj6hxy5XpWkfo6YQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On Tue, Sep 24, 2013 at 11:03 AM, didier <did447(at)gmail(dot)com> wrote:
> Hi
>
>
> On Tue, Sep 24, 2013 at 5:01 PM, <jesper(at)krogh(dot)cc> wrote:
>
>>
>> Apparently it is waiting for locks, cant the check be make in a
>> "non-blocking" way, so if it ends up waiting for a lock then it just
>> assumes non-visible and moves onto the next non-blocking?
>>
>
> Not only, it's a reason but you can get the same slow down with only one
> client and a bigger insert.
>
> The issue is that a btree search for one value degenerate to a linear
> search other 1000 or more tuples.
>
> As a matter of fact you get the same slow down after a rollback until
> autovacuum, and if autovacuum can't keep up...
>
Have you experimentally verified the last part? btree indices have some
special kill-tuple code which should remove aborted tuples from the index
the first time they are encountered, without need for a vacuum.
Cheers,
Jeff
From | Date | Subject | |
---|---|---|---|
Next Message | Bartłomiej Romański | 2013-09-24 23:43:54 | Re: Planner performance extremely affected by an hanging transaction (20-30 times)? |
Previous Message | Claudio Freire | 2013-09-24 21:56:37 | Re: Slow plan for MAX/MIN or LIMIT 1? |