The query plan does *not* look okay.
> electric=# EXPLAIN ANALYZE
> electric-# SELECT datavalue, logfielddatatype, timestamp FROM logdata_recent
> electric-# WHERE (logfielddatatype = 70 OR logfielddatatype = 71 OR
> logfielddatatype = 69)
> electric-# AND graphtargetlog = 1327
> electric-# AND timestamp >= 1123052400 AND timestamp <= 1123138800
> electric-# ORDER BY timestamp;
>
>
> QUERY PLAN
> --------------------------------------------------
> Sort (cost=82.48..82.50 rows=6 width=14) (actual time=60208.968..60211.232
> rows=2625 loops=1)
> Sort Key: public.logdata_recent."timestamp"
> -> Result (cost=0.00..82.41 rows=6 width=14) (actual
> time=52.483..60200.868 rows=2625 loops=1)
> -> Append (cost=0.00..82.41 rows=6 width=14) (actual
> time=52.476..60189.929 rows=2625 loops=1)
> -> Seq Scan on logdata_recent (cost=0.00..46.25 rows=1
> width=14) (actual time=0.003..0.003 rows=0 loops=1)
> Filter: (((logfielddatatype = 70) OR (logfielddatatype =
> 71) OR (logfielddatatype = 69)) AND (graphtargetlog = 1327) AND ("timestamp"
> >= 1123052400) AND ("timestamp" <= 1123138800))
> -> Index Scan using logdata_recent_1123085306_ix_t_fld_gtl,
> logdata_recent_1123085306_ix_t_fld_gtl,
> logdata_recent_1123085306_ix_t_fld_gtl on logdata_recent_stale logdata_recent
> (cost=0.00..18.08 rows=3 width=14) (actual time=52.465..60181.624 rows=2625
> loops=1)
Notice here that expected rows is 3, but actual rows is a hell of a lot
higher. Try increasing stats collections for the columns on which
logdata_recent_1123085306_ix_t_fld_gtl is declared.
Also, the actual index scan is taking a long time. How recently have you
vacuum full'd?
Thanks,
Gavin
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq