Oleg Lebedev <olebedev@waterford.org> writes:
> yeilds 235 rows, with a total of 240 rows in activity table. I wonder
> why EXPLAIN estimates only 1 row?
Ugh, that's a pretty horrible misestimation. What do you get from
select attname,attdispersion,s.*
from pg_statistic s, pg_attribute a, pg_class c
where starelid = c.oid and attrelid = c.oid and staattnum = attnum
and relname = 'activity';
(you'll need to do "VACUUM ANALYZE activity" first).
> Are there any online docs on how the planner works?
The first two sections of
http://developer.postgresql.org/docs/postgres/performance-tips.html
are a starting point --- but keep in mind that section 11.2 describes
PG 7.2's stats. The pg_statistic scheme in 7.1 is much simpler.
I am hoping that 7.2 will get a better result for this query, but can't
tell without more info.
regards, tom lane