On Mon, 23 Sept 2024 at 19:39, jian he <jian.universal...@gmail.com> wrote: > sql-analyze.html > For partitioned tables, ANALYZE gathers statistics by sampling rows > from all partitions. Each leaf partition is also recursively analyzed > and the statistics updated. This recursive part may be disabled by > using the ONLY keyword, otherwise, leaf partitions are analyzed only > once, even with multi-level partitioning. No statistics are collected > for only the parent table (without data from its partitions), because > with partitioning it's guaranteed to be empty. > > allow me to ask anenglish language question. > here "otherwise" means specify ONLY or not? > As far as i understand. > if you specify ONLY, postgres will only do "For partitioned tables, > ANALYZE gathers statistics by sampling rows from all partitions" > if you not specify ONLY, postgres will do "For partitioned tables, > ANALYZE gathers statistics by sampling rows from all partitions *AND* > also recursively analyze each leaf partition" > > Is my understanding correct?
The "Otherwise" case applies when "ONLY" isn't used. If this is confusing, I think there's a bunch of detail that I tried to keep that's just not that useful. The part about analyzing partitions just once and the part about not collecting non-inheritance stats for the partitioned table seems like extra detail that's either obvious or just not that important. Can you have a look at the attached and let me know if it's easier to understand now? David
v8-0001-Add-ONLY-support-for-VACUUM-and-ANALYZE.patch
Description: Binary data
v8-0002-fixup-Implementation-of-the-ONLY-feature-for-ANAL.patch
Description: Binary data