Re: Index-only scan performance regression - Mailing list pgsql-hackers

From Robert Haas
Subject Re: Index-only scan performance regression
Date
Msg-id CA+TgmoZxT1uHUn2fOUpdd-XG6bL0T7XT7YfBA=SV2Cj2vstOjA@mail.gmail.com
Whole thread Raw
In response to Re: Index-only scan performance regression  (Dean Rasheed <dean.a.rasheed@gmail.com>)
Responses Re: Index-only scan performance regression
List pgsql-hackers
On Wed, Feb 1, 2012 at 4:09 AM, Dean Rasheed <dean.a.rasheed@gmail.com> wrote:
>> The real objection to this probably is that if it only saves anything
>> for tables that don't have a VM yet, it's dubious whether it's worth
>> doing.  But if we can avoid wasted checks for VM extension as well,
>> then I think it's probably a no-brainer.
>
> Yes it applies in the same way to VM extension - if the table has
> grown and the VM has not yet been extended, but I don't see why that
> is any worse than the case of not having a VM yet.
>
> Actually I think that this is not such an uncommon case - for a table
> which has only had data inserted - no deletes or updates - it is
> tempting to think that ANALYSE is sufficient, and that there is no
> need to VACUUM. If it were simply the case that this caused an
> index-only scan to have no real benefit, you might be willing to live
> with normal index scan performance. But actually it causes a very
> significant performance regression beyond that, to well below 9.1
> performance.

So, I guess the trade-off here is that, since sinval messages aren't
processed immediately, we often won't notice the VM extension until
the next statement starts, whereas with the current implementation, we
notice it right away.  On the other hand, noticing it right away is
costing us a system call or two per tuple.  So on further thought, I
think we should do this.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


pgsql-hackers by date:

Previous
From: Jim Nasby
Date:
Subject: Re: foreign key locks, 2nd attempt
Next
From: Alvaro Herrera
Date:
Subject: Re: foreign key locks, 2nd attempt