From: | Dror Matalon <dror(at)zapatec(dot)com> |
---|---|
To: | Postgresql Performance <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: Speeding up Aggregates |
Date: | 2003-10-03 21:53:47 |
Message-ID: | 20031003215347.GQ87525@rlx11.zapatec.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On Fri, Oct 03, 2003 at 05:44:49PM -0400, Rod Taylor wrote:
> > item_max_date() looks like this:
> > select max(dtstamp) from items where channel = $1 and link = $2;
>
> It is too bad the (channel, link) index doesn't have dtstamp at the end
> of it, otherwise the below query would be a gain (might be a small one
> anyway).
>
> select dtstamp
> from items
> where channel = $1
> and link = $2
> ORDER BY dtstamp DESC
> LIMIT 1;
Similar idea to what Josh suggested. I did create an additional index
with dtstamp at the end and it doesn't look like the planner used it.
Using the above query instead of max() didn't improve things either.
>
>
> Could you show us the exact specification of the function? In
> particular, did you mark it VOLATILE, IMMUTABLE, or STABLE?
>
> I hope it isn't the first or second one ;)
CREATE or REPLACE FUNCTION item_max_date (int4, varchar) RETURNS
timestamptz AS '
select max(dtstamp) from items where channel = $1 and link = $2;
' LANGUAGE 'sql';
--
Dror Matalon
Zapatec Inc
1700 MLK Way
Berkeley, CA 94709
http://www.zapatec.com
From | Date | Subject | |
---|---|---|---|
Next Message | Christopher Browne | 2003-10-03 21:55:25 | Re: count(*) slow on large tables |
Previous Message | Rob Nagler | 2003-10-03 21:47:01 | Re: reindex/vacuum locking/performance? |