Время первого появления запроса из pg_stat_statements. Можно получить? - PullRequest
0 голосов
/ 07 апреля 2020

Я отлаживаю проблему с производительностью БД. Существует причина, по которой проблема возникла после определенного развертывания, например, когда БД начала обслуживать некоторые новые запросы.

Я хочу соотнести время развертывания с проблемами производительности и хотел бы определить запросы, которые

Использование pg_stat_statements до сих пор было очень удобно. К сожалению, он не хранит отметку времени первого вхождения каждого запроса.

Есть ли какие-либо вспомогательные таблицы, в которые я мог бы обратиться, чтобы увидеть время первого появления запросов?

В идеале, если бы эта информация была доступна в pg_stat_statements, я бы сделал такой запрос:

select queryid from where date(first_run) = '2020-04-01';

Кроме того, было бы здорово увидеть и last_run, поэтому отфильтровать некоторые старые запросы, которые больше не выполняются, а остаются в pg_stat_statements. Это, скорее, хорошая вещь, которая необходима.

1 Ответ

0 голосов
/ 07 апреля 2020

Эта информация нигде не хранится, и действительно, она не будет очень полезной. Если формулировка проблемы является новой, вы можете легко идентифицировать ее в коде приложения. Если это не новый оператор, но что-то сделало запрос медленнее, то первый раз, когда запрос был выполнен, вам не поможет.

Не находится ли ваш исходный код под контролем версий?

...