Routine analyze of single column prevents standard autoanalyze from running at all
От | Tomasz Ostrowski |
---|---|
Тема | Routine analyze of single column prevents standard autoanalyze from running at all |
Дата | |
Msg-id | ef99c1bd-ff60-5f32-2733-c7b504eb960c@ato.waw.pl обсуждение исходный текст |
Список | pgsql-bugs |
Hi. I'm routinely bulk inserting data to a PostgreSQL table and then analyzing a single column of the table, because it contains data which significantly changes histogram of this column values - for example something like adding rows with "todo=true" column, when all rows before bulk insert have "todo=false". This column has rather small "statistics" value, so analyze of it is fairly fast, which is important as I'm doing it often and also in parallel (and analyze blocks - only one can run at the time). The full analyze of this large table would take a lot of time (20 times more actually), and I can't perform it after each bulk insert. But I've noticed that a standard automatic analyze, which should work in background, never runs. I've noticed that this fast analyze of one column resets pg_stat_user_tables(n_mod_since_analyze) counter. I suppose that the decision to analyze the whole table is based on these values from pg_stat_user_tables and autovacuum_analyze_threshold and autovacuum_analyze_scale_factor settings. And in this case this highly updated table never reaches these values. I suppose this is a bug - an analyze, which does not analyze all columns, should not reset pg_stat_user_tables(n_mod_since_analyze). What do you think? -- Tomasz "Tometzky" Ostrowski
В списке pgsql-bugs по дате отправления: