On Thu, Jan 07, 2010 at 01:38:41PM +0100, Lefteris wrote: > airtraffic=# EXPLAIN ANALYZE SELECT "DayOfWeek", count(*) AS c FROM > ontime WHERE "Year" BETWEEN 2000 AND 2008 GROUP BY "DayOfWeek" ORDER > BY c DESC; Well, this query basically has to be slow. Correct approach to this problem is to add precalculated aggregates - either with triggers or with some cronjob. Afterwards query speed depends only on how good are your aggregates, and/or how detailed. Of course calculating them is not free, but is done on write (or periodically), and not on user-request, which makes user-requests *much* faster. depesz -- Linkedin: http://www.linkedin.com/in/depesz / blog: http://www.depesz.com/ jid/gtalk: depesz@xxxxxxxxxx / aim:depeszhdl / skype:depesz_hdl / gg:6749007 -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance