no index-usage on aggregate-functions?

From: "Harald Lau (Sector-X)" <harald(at)sector-x(dot)de>
To: <pgsql-performance(at)postgresql(dot)org>
Subject: no index-usage on aggregate-functions?
Date: 2004-06-29 06:42:14
Message-ID: 007d01c45da4$3726dcd0$6602a8c0@spock
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Hi,

I've experienced that PG up to current release does not make use of an index when aggregating. Which of course may result in unacceptable answering times

This behaviour is reproducable on any table with any aggregat function in all of my databases on every machine (PostgreSQL 7.4.2 on i386-redhat-linux-gnu and PostgreSQL 7.2.1 on i686-pc-linux-gnu)

f.e. querying against a 2.8-mio-records (2.800.000) table the_table
SELECT count(*) FROM the_table
=> Seq scan -> takes about 12 sec

SELECT Avg(num_found) AS NumFound FROM the_table --(index on num_found)
=> Seq scan -> takes about 10 sec

SELECT Sum(num_found) AS TotalFound FROM the_table --(index on num_found)
=> Seq scan -> takes about 11 sec

SELECT Max(date_) AS LatestDate FROM the_table --(index on date_)
=> Seq scan -> takes about 14 sec

But
SELECT date_ AS LatestDate FROM the_table ORDER BY date_ DESC LIMIT 1;
=> Index scan -> takes 0.18 msec

MS SQLServer 2000: Use of an appropriate index _whenever_ aggregating.

Am I doing something wrong?

Greetings Harald

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Scott Marlowe 2004-06-29 07:25:03 Re: no index-usage on aggregate-functions?
Previous Message Josh Berkus 2004-06-28 22:47:38 Re: postgres 7.4 at 100%