Один и тот же запрос обычно выполняется за несколько секунд, но иногда не завершается после нескольких часов - PullRequest
1 голос
/ 09 февраля 2020

Оцените этот вопрос, название немного расплывчато для SO. Извиняюсь за это, но я в полной растерянности о том, что делать.

Я создал свою первую postgres базу данных примерно за месяц go. Он находится на Azure и имеет 100 ГБ памяти, из которых в настоящее время используется ~ 40%.

У меня есть запрос, который я запускаю с помощью задания cron каждое утро. Вчера утром запрос прошел менее минуты. Тем не менее, этим утром казалось, что время истекло. Нет существенной разницы в объеме данных между вчера и сегодня.

Использование ресурсов за последние 7 дней: enter image description here

Кто-то предположил, что это может быть вакуум, который я никогда не слышал раньше. Из сообщения SO, которое я обнаружил при просмотре статистики вакуума, я запустил:

select
  schemaname, relname,
  last_vacuum, last_autovacuum,
  vacuum_count, autovacuum_count
from pg_stat_user_tables;

Вакуум не запускается со 2 февраля.

У меня есть доступ к Azure серверу через панель инструментов просмотра, но я я не уверен, что искать, например, DBforPostgreSQL / servers / ourcompany-data / Overview

Есть журнал активности, настройки и предупреждения об использовании, но я не знаю, где мне искать виновника.

Я также просмотрел активные запросы, чтобы узнать, были ли еще запущенные запросы, которые, по моему мнению, были отменены:

select * from pg_stat_activity where state = 'active';

Других запущенных запросов нет.

Я не поделился своим запросом Вот. Это потому, что я не хочу отвлекать любые отзывы, предлагающие советы по оптимизации. Я знаю, что могу оптимизировать его, например, заменив CTE временными таблицами, но я действительно хочу понять разницу во времени выполнения запроса для того же запроса. Сейчас кажется, что это случайно.

База данных не является общей, и никакие другие процессы или пользователи на ней не работают.

Я пытался выполнить запрос и к вчерашним данным, тоже самое, запрос просто не завершается.

Есть ли здесь какой-то предписанный список вещей, которые нужно проверить? Почему запрос на выборку, который обычно завершается через несколько секунд, может перестать казаться неожиданным?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...