Re: Speeding up Aggregates - Mailing list pgsql-performance

From Dror Matalon
Subject Re: Speeding up Aggregates
Date
Msg-id 20031003212848.GP87525@rlx11.zapatec.com
Whole thread Raw
In response to Re: Speeding up Aggregates  (Josh Berkus <josh@agliodbs.com>)
Responses Re: Speeding up Aggregates
List pgsql-performance
Hi Josh,

On Fri, Oct 03, 2003 at 02:07:10PM -0700, Josh Berkus wrote:
> Dror,
>
> > select articlenumber, channel, description, title, link, dtstamp  from
> >     items, my_channels where items.channel = '22222' and my_channels.id =
> >     '22222' and owner = 'drormata'  and dtstamp > last_viewed and
> >     articlenumber not in (select item from viewed_items where channel
> >     ='22222' and owner = 'drormata');
>
> the NOT IN is a bad idea unless the subselect never returns more than a
> handful of rows.  If viewed_items can grow to dozens  of rows, wyou should
> use WHERE NOT EXISTS instead.  Unless you're using 7.4.
>

I am using 7.4, and had tried NOT EXISTS and didn't see any
improvements.

> > item_max_date() looks like this:
> >    select max(dtstamp) from items where channel = $1 and link = $2;
>
> Change it to
>
> SELECT dtstamp from iterm where channel = $1 and link = $2
> ORDER BY dtstamp DESC LIMIT 1
>

Didn't make a difference. And plugging real values into this query as
well as into  the original
  select max(dtstamp) from items where channel = $1 and link = $2;

and doing an explain analyze shows that the cost is the same. The
strange things is that when I run the above queries by hand they take
about .5 msec. Yet on a resultset that fetches 5 rows, I go up from 15
msec to 300 msec. It would seem like it should be something like 15 +
(0.5 * 5) + small overhead, = 30 msec or so rather than the 300 I'm
seeing.

> and possibly build an index on channel, link, dtstamp

Didn't make a difference either. Explain analyze shows that it didn't
use it.

>
> --
> -Josh Berkus
>  Aglio Database Solutions
>  San Francisco
>

--
Dror Matalon
Zapatec Inc
1700 MLK Way
Berkeley, CA 94709
http://www.zapatec.com

pgsql-performance by date:

Previous
From: Josh Berkus
Date:
Subject: Re: Speeding up Aggregates
Next
From: Josh Berkus
Date:
Subject: Re: Speeding up Aggregates