> Kenji Sugita <sugita(at)srapc1327(dot)sra(dot)co(dot)jp> writes:
>> Why do dead tuples cause incorrect expected rows by ANALYZE?
>
> Because it extrapolates the density of live rows in the whole table
> from their density in the first few pages.
>
> There has been some previous discussion of how to improve this, but no
> really workable ideas AFAIR. Ultimately, unless you want to abandon
> the notion that ANALYZE only samples the table and doesn't read the
> whole thing, there will be situations where it gets fooled. But
> possibly we can make those situations less likely to correspond to
> common real-world cases.
Couldn't there be an ANALYZE FULL option?