最近,我将主键从INTEGER迁移到BIGINT,发现了一个article,其中作者在更新PK数据类型后手动更新表统计信息:
-- reanalyze the table in 3 steps
SET default_statistics_target TO 1;
ANALYZE [table];
SET default_statistics_target TO 10;
ANALYZE [table];
SET default_statistics_target TO DEFAULT;
ANALYZE [table];
据我所知,分析器自动在后台运行,以保持统计数据的最新.在Postgres docs(注释部分)中,我发现分析器在进行了一些重大更改后可以手动运行.
因此,问题是:
- 如果启用了自动真空,手动运行分析仪有意义吗?如果是,在什么情况下?
- 它的最佳实践是什么(例如上面的
default_statistics_target
个交换)?