|From:||Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>|
|To:||Robert Haas <robertmhaas(at)gmail(dot)com>|
|Cc:||Andres Freund <andres(at)anarazel(dot)de>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, James Coleman <jtc331(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Simon Riggs <simon(at)2ndquadrant(dot)com>|
|Subject:||Re: PROC_IN_ANALYZE stillborn 13 years ago|
|Views:||Raw Message | Whole Thread | Download mbox | Resend email|
Robert Haas <robertmhaas(at)gmail(dot)com> writes:
> ... how
> important is stability to ANALYZE? If you *either* retake your MVCC
> snapshots periodically as you re-scan the table *or* use a non-MVCC
> snapshot for the scan, you can get those same kinds of artifacts: you
> might see two copies of a just-updated row, or none. Maybe this would
> actually *break* something - e.g. could there be code that would get
> confused if we sample multiple rows for the same value in a column
> that has a UNIQUE index? But I think mostly the consequences would be
> that you might get somewhat different results from the statistics.
Yeah, that's an excellent point. I can imagine somebody complaining
"this query clearly matches a unique index, why is the planner estimating
multiple rows out?". But most of the time it wouldn't matter much.
(And I think you can get cases like that anyway today.)
> It's not clear to me that it would even be correct to categorize those
> somewhat-different results as "less accurate."
Estimating two rows where the correct answer is one row is clearly
"less accurate". But I suspect you'd have to be quite unlucky to
get such a result in practice from Simon's proposal, as long as we
weren't super-aggressive about changing ANALYZE's snapshot a lot.
regards, tom lane
|Next Message||Andres Freund||2020-08-06 21:45:41||Re: PROC_IN_ANALYZE stillborn 13 years ago|
|Previous Message||Tomas Vondra||2020-08-06 21:33:34||Re: [Patch] Optimize dropping of relation buffers using dlist|