Явно различать похожие запросы в pg_stat_statements? - PullRequest
0 голосов
/ 11 октября 2018

pg_stat_statements (к счастью) довольно умен в нормализации запросов для агрегирования статистики независимо от передаваемых вами аргументов.Однако я сталкиваюсь с ситуацией, когда конкретный запрос вызывается из разных мест нашего приложения, и я хотел бы получить отдельную статистику, основанную на этих разных местах.Вдохновленный библиотекой Marginalia , я попытался добавить комментарии SQL для аннотирования запроса.К сожалению, это не работает.См. Этот пример:

SELECT * FROM users WHERE email = 'a@b.c' /* action: signup */
SELECT * FROM users WHERE email = 'x@y.z' /* action: login */

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

SELECT * FROM users WHERE email = $1 /* action: signup */

Затем, если я вызываю тот же запрос сразличные комментарии (или вообще никаких комментариев), статистика будет объединена в один и тот же элемент.Комментарии фактически игнорируются в нормализованном представлении запроса.

Есть ли способ вызвать эквивалентные запросы SQL, но отслеживаются ли они отдельно с помощью pg_stat_statements?

1 Ответ

0 голосов
/ 11 октября 2018

Нет, нет.

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

...