Статистика времени выполнения
Сборщик статистики запросов и индексов
Эти параметры управляют функциями сбора статистики на уровне сервера. Когда сбор статистики включен, доступ к собранным данным можно получить через семейство системных представлений pg_stat и pg_statio. Дополнительную информацию см. в главе Мониторинг активности базы данных.
track_activities (boolean)
Включает сбор информации о текущих командах, выполняемых во всех сеансах, в том числе идентификатора и времени начала выполнения этих команд. По умолчанию этот параметр включен. Обратите внимание, что даже при включенном параметре эта информация видна не всем пользователям, а только суперпользователям, ролям с правами роли pg_read_all_stats и пользователю-владельцу сеанса, о котором сообщается (включая сеансы ролей, права которых они имеют), поэтому это не должно представлять угрозу безопасности. Только суперпользователи могут изменять этот параметр.
track_activity_query_size (integer)
Задает объем памяти, зарезервированный для хранения текста текущих команд, выполняемых во всех активных сеансах, для поля pg_stat_activity.query. Если это значение указано без единиц измерения, оно считается заданным в байтах. Значение по умолчанию — 1024 байта. Этот параметр можно задать только при запуске сервера.
track_counts (boolean)
Включает сбор статистики активности базы данных. По умолчанию этот параметр включен, поскольку собранная информация требуется процессу автовакуума. Только суперпользователи могут изменять этот параметр.
track_io_timing (boolean)
Включает замер времени вызовов ввода/вывода базы данных. По умолчанию этот
параметр выключен, поскольку он будет периодически запрашивать у операционной
системы текущее время, что может привести к значительному замедлению работы на
некоторых платформах. Для измерения затрат времени в вашей системе можно
воспользоваться утилитой qhb_test_timing. Информация о времени операций
ввода/вывода отображается в представлении pg_stat_database, в выводе
[EXPLAIN
] при использовании параметра BUFFERS, в процессе автовакуума при
выполнении очистки и анализа, когда установлен параметр log_autovacuum_min_duration,
и в представлении pg_stat_statements. Только суперпользователи могут изменять
этот параметр.
track_wal_io_timing (boolean)
Включает замер времени вызовов ввода/вывода WAL. По умолчанию этот параметр выключен, поскольку он будет периодически запрашивать у операционной системы текущее время, что может привести к значительному замедлению работы на некоторых платформах. Для измерения затрат времени в вашей системе можно воспользоваться утилитой qhb_test_timing. Информация о времени операций ввода/вывода отображается в представлении pg_stat_wal. Только суперпользователи могут изменять этот параметр.
track_functions (enum)
Включает подсчет вызовов функций и времени их выполнения. При значении pl подсчет будет вестись только для функций процедурного языка, при all — также для функций на языках SQL и C/RUST. Значение по умолчанию — none, т. е. сбор статистики по функциям выключен. Только суперпользователи могут изменять этот параметр.
Примечание
Функции на языке SQL, которые достаточно просты для «встраивания» в вызывающий запрос, отслеживаться не будут, независимо от этого параметра.
stats_temp_directory (string)
Задает каталог для хранения временных данных статистики. Это может быть путь относительно каталога данных или абсолютный путь. Значение по умолчанию — pg_stat_tmp. Если разместить каталог в файловой системе в ОЗУ, это снизит аппаратные требования к вводу/выводу и может привести к увеличению производительности. Этот параметр можно задать только в файле qhb.conf или в командной строке сервера.
Мониторинг статистики
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 нельзя включать одновременно с параметрами для модулей. Все эти параметры по умолчанию выключены. Только суперпользователи могут изменять эти параметры.