C# 调整autovacuum以在数据库架构更改时运行?

C# 调整autovacuum以在数据库架构更改时运行?,c#,wpf,postgresql,autovacuum,C#,Wpf,Postgresql,Autovacuum,每当我通过多次迁移从软件(代码)升级数据库架构时,某些数据库操作都需要花费大量时间才能完成。我知道,有些事情搞砸了,查询计划也被修改了。手动运行ANALYZE后,相同的操作将在2-3秒内完成 深入研究自动真空和分析使我了解了它的功能。但我的要求是在数据库模式更新后运行ANALYZE 我的应用程序使用实体框架代码优先的方法。启动和启动我的软件时,数据库模式会更新。即使我的postgres autovacuum参数设置为ON,但在架构更新时它不会运行。所以,我需要在我的软件启动后运行ANALYZE

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

深入研究自动真空和分析使我了解了它的功能。但我的要求是在数据库模式更新后运行ANALYZE

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


在软件启动之后,在单击之前,如何从代码中对整个数据库运行ANALYZE?这是一个C#WPF应用程序

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


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

EF 6或EF Core?您可以发布启动代码吗?您的应用程序不应该在每次启动时都更改数据库架构,因此您不需要在每次启动时都对其进行分析。你能发布一些代码来说明你在做什么吗?请尝试在应用程序启动时不更改数据库中的任何内容,并运行一个查询,如果它仍然很慢,则问题可能源于在第一个查询实际执行之前执行的冷查询EF: