I found the difference. Random_page_cost is 1 in the production 8.3.10, I guess weighting the decision to use "index scan". Thanks for the replies, gentlemen. > If you diff the postgresql.conf files for both installs, what's different? In the list below, 8.3.10 parameter value is in the clear, (8.3.14 is in brackets) Max_fsm_pages 819200 vs (204800) Max_fsm_relations 4000 vs (dflt 1000) Synchronous_commit off vs (dflt on) Wal_buffers 256kb vs (dflt 64kb) Checkpoint_segments 128 vs (dflt 3) Random_page_cost 1 vs (dflt 4) #!!! Actually this is the difference in the explain plans Constraint_exclusion on vs (dflt off) .... a bunch of logging parameters have been set .... Autovacuum_freeze_max_age 900000000 vs (dflt 200000000) vacuum_freeze_min_age = 50000000 vs (dflt 100000000) deadlock_timeout = 20s (vs dflt 1s) add_missing_from = on (vs dflt off) -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance