-1

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

深入研究 autovacuum 和分析让我明白了它的作用。但我的要求是在我的数据库模式更新后运行 ANALYZE。

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

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

4

1 回答 1

1

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

但是ANALYZE在升级过程中为每个受影响的表添加一个应该很简单。

于 2020-03-13T05:54:49.380 回答