• Tom Lane's avatar
    Measure the number of all-visible pages for use in index-only scan costing. · e6858e66
    Tom Lane authored
    Add a column pg_class.relallvisible to remember the number of pages that
    were all-visible according to the visibility map as of the last VACUUM
    (or ANALYZE, or some other operations that update pg_class.relpages).
    Use relallvisible/relpages, instead of an arbitrary constant, to estimate
    how many heap page fetches can be avoided during an index-only scan.
    
    This is pretty primitive and will no doubt see refinements once we've
    acquired more field experience with the index-only scan mechanism, but
    it's way better than using a constant.
    
    Note: I had to adjust an underspecified query in the window.sql regression
    test, because it was changing answers when the plan changed to use an
    index-only scan.  Some of the adjacent tests perhaps should be adjusted
    as well, but I didn't do that here.
    e6858e66
analyze.c 79.3 KB