Настройка автоочистки для запуска при изменении схемы базы данных? - PullRequest
0 голосов
/ 13 марта 2020

Всякий раз, когда я обновляю свою схему базы данных из программного обеспечения (кода) посредством нескольких миграций, некоторые операции с базой данных занимают много времени. Я понял, что pgstats что-то напутало, и план запроса изменился. Те же операции завершатся через 2-3 секунды после запуска ANALYZE вручную.

Более глубокие исследования и анализ позволили мне понять, что он делает. Но мое требование - запустить ANALYZE после обновления схемы БД.

Мое приложение использует первый подход кода Entity Framework. Схема базы данных обновляется при запуске и загрузке моего программного обеспечения. Даже если для моего параметра postgres autovacuum установлено значение ON, он не запускается при обновлении схемы. Итак, мне нужно запустить ANALYZE после загрузки моего программного обеспечения.

Как я могу запустить ANALYZE для всей базы данных из моего кода после загрузки программного обеспечения и непосредственно перед тем, как произойдет щелчок? Это C# приложение WPF.

1 Ответ

1 голос
/ 13 марта 2020

Вы должны сделать это явно. Изменения схемы не запускают анализ, и даже если это произойдет, потребуется некоторое время, чтобы завершить обработку sh.

Но просто добавить ANALYZE для каждой затронутой таблицы как части процедуры обновления.

...