当数据库架构更改时将 autovacuum 调整为 运行?

Tuning autovacuum to run when database schema changes?

每当我通过多次迁移从软件(代码)升级我的数据库模式时,一些数据库操作需要很长时间才能完成。我了解 pgstats,有些东西搞砸了,查询计划已被修改。 运行 手动分析后,相同的操作将在 2-3 秒内完成。

深入研究 autovacuum 并进行分析让我了解了它的作用。但我的要求是 运行 ANALYZE 在我的数据库架构更新后。

我的应用程序使用 Entity framework 代码优先方法。当我的软件启动并启动时,数据库架构会更新。即使我的 postgres autovacuum 参数设置为 ON,它也不会 运行 模式更新时。所以,我需要在我的软件启动后 运行 进行分析。

我如何 运行 在软件启动后和任何点击发生之前通过我的代码分析整个数据库?它是一个 C# WPF 应用程序。

你必须明确地做到这一点。架构更改不会触发分析,即使触发,也需要一段时间才能完成处理。

但作为升级过程的一部分,为每个受影响的 table 添加一个 ANALYZE 应该很简单。