Статистика времени выполнения
Накопительная статистика запросов и индексов
Эти параметры управляют системой накопительной статистики на уровне сервера. Когда сбор статистики включен, доступ к собранным данным можно получить через семейство системных представлений pg_stat и pg_statio. Более подробную информацию см. в главе Мониторинг активности базы данных.
track_activities (boolean)
Включает сбор информации о текущих командах, выполняемых во всех сеансах, в том числе идентификаторов и времени начала выполнения этих команд. По умолчанию этот параметр включен. Обратите внимание, что даже при включенном параметре эта информация видна не всем пользователям, а только суперпользователям, ролям с правами роли pg_read_all_stats и пользователю-владельцу сеанса, о котором сообщается (включая сеансы ролей, права которых они имеют), поэтому это не должно представлять угрозу безопасности. Только суперпользователи и пользователи с подходящим правом SET могут изменять этот параметр.
track_activity_query_size (integer)
Задает объем памяти, зарезервированный для хранения текста текущих команд, выполняемых во всех активных сеансах, для поля pg_stat_activity.query. Если это значение указано без единиц измерения, оно считается заданным в байтах. Значение по умолчанию — 1024 байта. Этот параметр можно задать только при запуске сервера.
track_counts (boolean)
Включает сбор статистики активности базы данных. По умолчанию этот параметр включен, поскольку собранная информация требуется процессу автовакуума. Только суперпользователи и пользователи с подходящим правом SET могут изменять этот параметр.
track_io_timing (boolean)
Включает замер времени вызовов ввода/вывода базы данных. По умолчанию этот
параметр выключен, поскольку он будет периодически запрашивать у операционной
системы текущее время, что может привести к значительному замедлению работы на
некоторых платформах. Для измерения затрат времени в вашей системе можно
воспользоваться утилитой qhb_test_timing. Информация о времени операций
ввода/вывода отображается в представлении pg_stat_database, в выводе
EXPLAIN
при использовании параметра BUFFERS, в выводе VACUUM
при
использовании параметра VERBOSE, в процессе автовакуума при выполнении
автоочистки и автоанализа, когда установлен параметр log_autovacuum_min_duration,
и в представлении pg_stat_statements. Только суперпользователи и
пользователи с подходящим правом SET могут изменять этот параметр.
track_wal_io_timing (boolean)
Включает замер времени вызовов ввода/вывода WAL. По умолчанию этот параметр выключен, поскольку он будет периодически запрашивать у операционной системы текущее время, что может привести к значительному замедлению работы на некоторых платформах. Для измерения затрат времени в вашей системе можно воспользоваться утилитой qhb_test_timing. Информация о времени операций ввода/вывода отображается в представлении pg_stat_wal. Только суперпользователи и пользователи с подходящим правом SET могут изменять этот параметр.
track_functions (enum)
Включает подсчет вызовов функций и времени их выполнения. При значении pl подсчет будет вестись только для функций процедурного языка, при all — также для функций на языках SQL и C/RUST. Значение по умолчанию — none, т. е. сбор статистики по функциям выключен. Только суперпользователи и пользователи с подходящим правом SET могут изменять этот параметр.
Примечание
Функции на языке SQL, которые достаточно просты для «встраивания» в вызывающий запрос, отслеживаться не будут, независимо от этого параметра.
stats_fetch_consistency (enum)
Определяет поведение при многократном обращении к накопительной статистике в рамках транзакции. Со значением none при каждом обращении счетчики повторно извлекаются из разделяемой памяти. Со значением cache при первом обращении к статистике по какому-либо объекту эта статистика кэшируется до конца транзакции и сбрасывается, только если вызвать pg_stat_clear_snapshot(). Со значением snapshot при первом обращении к статистике вся статистика в текущей базе данных кэшируется до конца транзакции и сбрасывается, только если вызвать pg_stat_clear_snapshot(). Изменение этого параметра в транзакции сбрасывает снимок статистики. Значение по умолчанию — cache.
Примечание
Вариант none лучше всего подходит для систем мониторинга. Он наиболее эффективен, если к значениям обращаются однократно. Вариант cache гарантирует, что при повторном обращении будут получены те же значения, что важно для запросов, содержащих, к примеру, замкнутые соединения. Вариант snapshot может быть полезен при интерактивном просмотре статистики, но вызывает более значительные издержки, особенно если в базе данных существует много объектов.
Мониторинг статистики
compute_query_id (enum)
Включает вычисление идентификатора запроса в ядре. Идентификаторы запроса могут
отображаться в представлении pg_stat_activity, в выводе команды EXPLAIN
или записываться в журнал, если были сконфигурированы посредством параметра
log_line_prefix. Также идентификаторы запросов должны вычисляться для
расширения pg_stat_statements. Обратите внимание, что если метод вычисления
идентификатора запроса в ядре является неприемлемым, в качестве альтернативы можно
использовать внешний модуль. В таком случае вычисление в ядре должно быть всегда
выключено. Допустимые значения: off (всегда выключен), on (всегда включен),
auto, которое позволяет модулям, например pg_stat_statements, включать
это вычисление автоматически, и regress, которое действует так же, как auto,
но идентификатор запроса не отображается в выводе EXPLAIN
в целях упрощения
автоматического регрессионного тестирования. Значение по умолчанию — auto.
Примечание
Чтобы гарантированно вычислялся и отображался только один идентификатор запроса, вычисляющее его расширение должно выдавать ошибку, если идентификатор запроса уже был вычислен.
log_statement_stats (boolean)
log_parser_stats (boolean)
log_planner_stats (boolean)
log_executor_stats (boolean)
Эти параметры включают вывод статистики по производительности соответствующего модуля в журнал сервера. Это грубый инструмент профилирования, похожий на функцию getrusage() операционной системы Unix. log_statement_stats включает вывод общей статистики по командам, в то время как остальные параметры включают вывод статистики по модулям. log_statement_stats нельзя включать одновременно с параметрами для модулей. Все эти параметры по умолчанию выключены. Только суперпользователи и пользователи с подходящим правом SET могут изменять эти параметры.