Postgres: подсчет всех запросов INSERT, выполненных за последнюю 1 минуту - PullRequest
0 голосов
/ 29 апреля 2020

Я могу в настоящее время вести активный подсчет всех запросов INSERT, выполняемых на сервере PostgreSQL, следующим образом:

SELECT count(*) FROM pg_stat_activity where query like 'INSERT%'

Но есть ли способ подсчитать все запросы INSERT, выполненные на сервере за указанный период? времени? Например, в последнюю минуту?

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

Любой тип статистики, подобной этой, в определенный период времени будет очень полезно, среднее время, необходимое для обработки запроса, или знание пропускной способности, проходящей за минуту, и т. д. c.

Примечание: я использую PostgreSQL 12

Ответы [ 3 ]

1 голос
/ 29 апреля 2020

Я полагаю, что вы можете использовать триггер аудита .

Этот аудит создаст таблицу, в которой регистрируются действия INSERT, UPDATE и DELETE. Так что вы можете адаптироваться. Поэтому каждый раз, когда ваша база данных выполняет одну из этих команд, таблица аудита регистрирует действие, таблицу и время действия. Таким образом, будет легко сделать COUNT() на желаемом столе с WHERE за минуту go.

1 голос
/ 29 апреля 2020

Если это еще не сделано, установите расширение pg_stat_statements и сделайте несколько снимков представления pg_stat_statements: diff выдаст количество запросов, выполненных между двумя снимками.

Примечание: он не сохраняет каждый отдельный запрос, скорее он параметризует их, а затем сохраняет агрегированный результат.

См. https://www.citusdata.com/blog/2019/02/08/the-most-useful-postgres-extension-pg-stat-statements/

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

Я ничего не мог найти solid, поэтому я создал таблицу, в которую я записываю количество транзакций вставки, используя скрипт, который запускается как задание cron. Это было достаточно просто реализовать, и я получаю не оценки, а реальные значения. Я фактически считаю все новые строки, вставленные в таблицы в заданном интервале.

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