Статистика выполнения
Эта страница переведена при помощи нейросети GigaChat.
Накопительные запросы и статистика индексов
Эти параметры управляют системой кумулятивной статистики для всего сервера. Когда она включена, собранные данные могут быть доступны через семейство системных представлений 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
)
Включает сбор статистики о деятельности базы данных. Этот параметр включен по умолчанию, потому что демон autovacuum нуждается в собранной информации. Только суперпользователи и пользователи с соответствующим привилегией SET
могут изменить этот параметр.
track_io_timing
(boolean
)
Позволяет отслеживать время вызова ввода-вывода базы данных. Этот параметр отключен по умолчанию, так как он будет многократно запрашивать у операционной системы текущее время, что может вызвать значительную нагрузку на некоторых платформах. Можно использовать инструмент pg_test_timing для измерения накладных расходов на тайминг в системе. Информация о времени ввода-вывода отображается в pg_stat_database
, pg_stat_io
в выводе команды EXPLAIN при использовании опции BUFFERS
, в выводе команды VACUUM при использовании опции VERBOSE
, автивакуумом для авто-вакуумов и авто-анализов, когда log_autovacuum_min_duration установлен и с помощью pg_stat_statements. Только суперпользователи и пользователи с соответствующим привилегией SET
могут изменить этот параметр.
track_wal_io_timing
(boolean
)
Включает измерение времени вызовов ввода-вывода WAL. Этот параметр отключен по умолчанию, так как он будет многократно запрашивать у операционной системы текущее время, что может вызвать значительную нагрузку на некоторых платформах. Можно использовать инструмент pg_test_timing для измерения накладных расходов на измерение времени на системе. Информация о времени ввода-вывода отображается в pg_stat_wal
. Только суперпользователи и пользователи с соответствующим привилегией SET
могут изменить этот параметр.
track_functions
(enum
)
Включает отслеживание количества вызовов функций и затраченного времени. Укажите pl
, чтобы отслеживать только функции процедурного языка, all
, чтобы также отслеживать функции на языке SQL и C. По умолчанию используется 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
)
Для каждого запроса выводить статистику производительности соответствующего модуля в журнал сервера. Это грубый инструмент профилирования, аналогичный функции операционной системы Unix getrusage()
. log_statement_stats
сообщает общую статистику операторов, а остальные сообщают статистику по модулям. log_statement_stats
нельзя включить одновременно с любым из параметров на уровне модулей. Все эти параметры по умолчанию отключены. Изменить эти настройки могут только суперпользователи и пользователи с соответствующим привилегией SET
.