Charlie Savage <cfis@interserv.com> writes:
> 1. Postgresql estimates the index scan will be 50 times more costly
> than the seq scan (112870376 vs 2229858) yet in fact it only takes 3
> times longer to execute (2312426 s vs. 768403 s). My understanding is
> that postgresql assumes, via the random_page_cost parameter, that an
> index scan will take 4 times longer than a sequential scan. So why is
> the analyzer estimating it is 50 times slower?
The other factors that are likely to affect this are index correlation
and effective cache size. It's fairly remarkable that a full-table
index scan only takes 3 times longer than a seqscan; you must have both
a high correlation and a reasonably large cache. You showed us your
effective_cache_size setting, but what's the pg_stats entry for
completechain.tlid contain? Can you quantify what the physical
ordering of tlid values is likely to be?
regards, tom lane