Зачем запускать вручную ANALYZE для Aurora Postgres после обновления?

Я обновил 19 кластеров RDS, не запуская анализ, и проблем не возникло. При 20-м обновлении, через 2 часа, при чтении нашей БД наблюдалась огромная задержка. После обращения в службу поддержки AWS они сказали мне, что мне нужно запустить Analyze; для каждой базы данных вручную (теперь я вижу это в их документации по обновлению).

Это решило проблему, но почему это проблема только для этого экземпляра RDS, а не для других? Я использую группу default:aurora-postgresql-13 по умолчанию, поэтому не следует ли запустить автоматический пылесос, который бы запускался Analyze; автоматически? Что мне не хватает?

Об этом вам нужно спросить в службе поддержки AWS. Только они знают, что делают за кулисами.

Adrian Klaver 01.07.2024 20:26

Если у вас есть только чтение, автоанализ будет запущен только при достижении порога autovacuum_freeze_max_age. (Стандартный PostgreSQL, насчет Aurora не уверен)

Frank Heikens 01.07.2024 21:16

Потому что один кластер чувствителен к плохим планам, вызванным отсутствием статистики, а другие нет. Определите запросы, которые пошли не так, и посмотрите, выполняют ли другие кластеры запросы, аналогичные этим.

jjanes 02.07.2024 21:02
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

почему это проблема только для этого экземпляра RDS, а не для других?

На самом деле относится к обновлениям Postgres в целом. pg_upgrade предписывает обновить статистику после обновления:

15. Статистика

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

Облачные сервисы любят контролировать ситуацию и держать своих пользователей в неведении (иногда даже слишком). Таким образом, вы не увидите этого, когда Amazon работает pg_upgrade за кулисами (и всякая дополнительная магия, которая им нужна, особенно с такими форками, как Aurora, которые используют специальную систему хранения).

Обратите внимание: не все хотят или даже нуждаются в обновлении статистики для (всех) столбцов таблицы. Некоторые рабочие нагрузки не чувствительны к статистике столбцов. Так что это не вынужденный шаг.

Другие вопросы по теме