使用 ANALYZE 从零/从头开始重建 PostgreSQL 统计信息的最快方法是什么?

max*_*ire 4 postgresql database-administration postgresql-10

我有一个大小约为 100GB 的 PostgreSQL v10 数据库。

重建统计信息的最有效(最快)方法是什么,例如在主要版本升级之后?

ANALYZE默认情况下,没有参数会更新整个数据库的统计信息——这太慢了!这似乎是一个单一的过程。

有没有办法并行化它以加快速度?

Lau*_*lbe 6

您可以使用vacuumdbpg_upgrade建议相同的选项:

vacuumdb --all --analyze-in-stages
Run Code Online (Sandbox Code Playgroud)

该文档描述了它的作用:

仅计算优化器使用的统计信息(无真空),例如--analyze-only. 使用不同的配置设置运行多个(当前为三个)阶段的分析,以更快地生成可用的统计数据。

此选项对于分析从恢复的转储或由pg_upgrade. 此选项将尝试尽快创建一些统计信息,以使数据库可用,然后在后续阶段生成完整的统​​计信息。

为了与几个并行处理计算统计数据,您可以使用该选项-jvacuumdb