• Tom Lane's avatar
    Fix a performance problem in databases with large numbers of tables · 97903c3d
    Tom Lane authored
    (or other types of pg_class entry): the function pgstat_vacuum_tabstat,
    invoked during VACUUM startup, had runtime proportional to the number of
    stats table entries times the number of pg_class rows; in other words
    O(N^2) if the stats collector's information is reasonably complete.
    Replace list searching with a hash table to bring it back to O(N)
    behavior.  Per report from kim at myemma.com.
    
    Back-patch as far as 8.1; 8.0 and before use different coding here.
    97903c3d
pgstat.c 62.9 KB