pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Alvaro Herrera <alvherre@commandprompt.com>
To: Heikki Linnakangas <heikki@enterprisedb.com>
Cc: Guillaume Cottenceau <gc@mnc.ch>
Cc: pgsql-performance@postgresql.org
Subject: Re: Poor performance on seq scan
Date: Tue, 12 Sep 2006 09:32:55 -0400
Message-ID: <20060912133254.GC11324@alvh.no-ip.org> (raw)
In-Reply-To: <4506B508.80806@enterprisedb.com>
References: <450684EC.4090304@designaproduct.biz>
	<4506902C.7090407@enterprisedb.com>
	<4506A9E7.2060303@designaproduct.biz>
	<87y7spw8v9.fsf@meuh.mnc.lan>
	<4506B508.80806@enterprisedb.com>

Heikki Linnakangas wrote:
> Guillaume Cottenceau wrote:
> >Laszlo Nagy <gandalf 'at' designaproduct.biz> writes:
> >  
> >>>Probably, but PostgreSQL doesn't know how to do that. Even if it
> >>>did, it depends on how many matches there is. If you scan the index
> >>>and then fetch the matching rows from the heap, you're doing random
> >>>I/O to the heap. That becomes slower than scanning the heap
> >>>sequentially if you're going to get more than a few hits.
> >>>      
> >>I have 700 000 rows in the table, and usually there are less than 500
> >>hits. So probably using a "seq index scan" would be faster. :-) Now I
> >>    
> >
> >You can confirm this idea by temporarily disabling sequential
> >scans. Have a look at this chapter:
> 
> I don't think it will anyway do a "seq index scan" as Laszlo envisions. 
> PostgreSQL cannot do "fetch index tuple and apply %Mug% to it. If it 
> matches, fetch heap tuple". Even if you disable sequential scans, it's 
> still going to fetch every heap tuple to see if it matches "%Mug%". It's 
> just going to do it in index order, which is slower than a seq scan.

Are you saying that an indexscan "Filter" only acts after getting the
heap tuple?  If that's the case, then there's room for optimization
here, namely if the affected column is part of the index key, then we
could do the filtering before fetching the heap tuple.

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support



view thread (26+ messages)  latest in thread

Message-ID: <20060912133254.GC11324@alvh.no-ip.org>
Permalink:  ../20060912133254.GC11324@alvh.no-ip.org/
Also on:    postgresql.org/message-id/20060912133254.GC11324@alvh.no-ip.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: alvherre@commandprompt.com, heikki@enterprisedb.com, gc@mnc.ch
  Subject: Re: Poor performance on seq scan
  In-Reply-To: <20060912133254.GC11324@alvh.no-ip.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox