×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

3.12.2. Система накопительной статистики

3.12.2.1. Конфигурирование сбора статистики
3.12.2.2. Просмотр статистики
3.12.2.3. pg_stat_activity
3.12.2.4. pg_stat_replication
3.12.2.5. pg_stat_replication_slots
3.12.2.6. pg_stat_wal_receiver
3.12.2.7. pg_stat_recovery_prefetch
3.12.2.8. pg_stat_subscription
3.12.2.9. pg_stat_subscription_stats
3.12.2.10. pg_stat_ssl
3.12.2.11. pg_stat_gssapi
3.12.2.12. pg_stat_archiver
3.12.2.13. pg_stat_io
3.12.2.14. pg_stat_bgwriter
3.12.2.15. pg_stat_checkpointer
3.12.2.16. pg_stat_wal
3.12.2.17. pg_stat_database
3.12.2.18. pg_stat_database_conflicts
3.12.2.19. pg_stat_all_tables
3.12.2.20. pg_stat_all_indexes
3.12.2.21. pg_statio_all_tables
3.12.2.22. pg_statio_all_indexes
3.12.2.23. pg_statio_all_sequences
3.12.2.24. pg_stat_user_functions
3.12.2.25. pg_stat_slru
3.12.2.26. Функции для работы со статистикой

Digital Q.DataBase команды система накопительной статистики обеспечивает сбор и предоставление информации об активности сервера. В настоящее время учитываются обращения к таблицам и индексам как на уровне дисковых блоков, так и на уровне отдельных строк. Также подсчитывается общее количество строк в каждой таблице и фиксируются сведения об операциях очистки (vacuum) и анализа (analyze) для каждой таблицы. Если эта функция включена, также учитываются вызовы пользовательских функций и общее время, затраченное на выполнение каждой из них.

Digital Q.DataBase также поддерживает предоставление динамической информации о текущем состоянии системы, например, какая именно команда выполняется другими процессами сервера в настоящий момент и какие еще соединения существуют в системе. Этот механизм работает независимо от системы накопительной статистики.

3.12.2.1. Конфигурирование сбора статистики #

Поскольку сбор статистики создает определенные накладные расходы при выполнении запросов, систему можно настроить на сбор или игнорирование этой информации. Это регулируется параметрами конфигурации, которые обычно задаются в postgresql.conf . (См. Глава 3.4 подробные сведения о настройке параметров конфигурации.)

Параметр track_activities включает мониторинг текущей команды, выполняемой любым процессом сервера.

Параметр track_counts определяет, выполняется ли сбор накопленной статистики обращений к таблицам и индексам.

Параметр track_functions включает отслеживание использования пользовательских функций.

Параметр track_io_timing включает мониторинг времени чтения, записи, расширения блоков и выполнения fsync.

Параметр track_wal_io_timing включает мониторинг времени записи в журнал WAL и выполнения fsync.

Обычно эти параметры задаются в postgresql.conf , чтобы они применялись ко всем процессам сервера, но их также можно включать или выключать в отдельных сеансах с помощью команды SET command. (Чтобы обычные пользователи не могли скрыть свою активность от администратора, только суперпользователям разрешено изменять эти параметры с помощью SET .)

Накопленная статистика собирается в разделяемой памяти. Каждый Digital Q.DataBase процесс собирает статистику локально, а затем обновляет общие данные через определённые интервалы времени. Когда работа сервера, включая физическую реплику, завершается штатно, постоянная копия статистических данных сохраняется в pg_stat подкаталоге, чтобы статистика могла сохраняться между перезапусками сервера. Напротив, при запуске после некорректного завершения работы (например, после немедленного выключения, сбоя сервера, запуска из базовой резервной копии или восстановления на момент времени — PITR) все счетчики статистики сбрасываются.

3.12.2.2. Просмотр статистики #

Несколько предопределенных представлений, перечисленных в Таблица 3.12.1 , доступны для отображения текущего состояния системы. Существует также несколько других представлений, перечисленных в Таблица 3.12.2 , доступных для отображения накопленной статистики. В качестве альтернативы можно создавать пользовательские представления, используя базовые функции кумулятивной статистики, как описано в Раздел 3.12.2.26 .

При использовании представлений и функций кумулятивной статистики для мониторинга собранных данных важно понимать, что информация обновляется не мгновенно. Каждый отдельный процесс сервера сбрасывает накопленную статистику в разделяемую память непосредственно перед переходом в режим ожидания, но не чаще одного раза в PGSTAT_MIN_INTERVAL миллисекунд (1 секунда, если значение не было изменено при сборке сервера); поэтому выполняющийся запрос или транзакция не влияют на отображаемые итоговые значения, а выводимая информация отстает от фактической активности. Однако сведения о текущих запросах, собираемые track_activities всегда актуальны.

Другим важным моментом является то, что когда процессу сервера поступает запрос на отображение любой накопленной статистики, при конфигурации по умолчанию полученные значения кэшируются до конца текущей транзакции. Таким образом, статистика будет оставаться неизменной, пока продолжается текущая транзакция. Аналогичным образом, информация о текущих запросах всех сессий собирается при первом запросе такой информации в рамках транзакции, и те же самые данные будут отображаться на протяжении всей транзакции. Это функциональность, а не ошибка, так как она позволяет выполнять несколько запросов к статистике и сопоставлять результаты, не опасаясь изменения данных в процессе работы. При интерактивном анализе статистики или выполнении ресурсоемких запросов разница во времени между обращениями к отдельным показателям может привести к значительным отклонениям в кэшированных данных. Чтобы минимизировать эти отклонения, stats_fetch_consistency может принимать значение snapshot , ценой повышенного потребления оперативной памяти для кэширования избыточных статистических данных. Напротив, если известно, что обращение к статистике будет однократным, кэширование запрашиваемых данных не требуется; его можно избежать, установив значение параметра stats_fetch_consistency в none . Для сброса данных можно вызвать функцию pg_stat_clear_snapshot() , которая удаляет снимок статистики текущей транзакции или кэшированные значения (при их наличии). При следующем обращении к статистической информации будет либо создан новый снимок (в режиме snapshot), либо выполнено кэширование запрашиваемых данных (в режиме cache).

Транзакция также может видеть собственные статистические показатели (еще не перенесенные в разделяемую память статистических данных) в представлениях pg_stat_xact_all_tables , pg_stat_xact_sys_tables , pg_stat_xact_user_tables , а также pg_stat_xact_user_functions . Данные показатели не следуют описанным выше правилам; вместо этого они непрерывно обновляются в ходе выполнения транзакции.

Доступ к некоторой информации в динамических представлениях статистики, указанных в Таблица 3.12.1 ограничен из соображений безопасности. Обычные пользователи могут видеть полную информацию только о своих собственных сеансах (сеансах, инициированных ролями, членами которых они являются). В строках, относящихся к другим сессиям, многие столбцы будут иметь значение null. Однако следует учитывать, что сведения о существовании сессии и ее общие свойства, такие как пользователь сессии и база данных, видимы всем пользователям. Суперпользователи и роли с правами встроенной роли pg_read_all_stats (см. также Раздел 3.6.5 ) могут просматривать всю информацию обо всех сессиях.

Таблица 3.12.1. Динамические представления статистики

Имя представленияОписание
pg_stat_activity Одна строка на каждый процесс сервера, содержащая информацию о текущей активности данного процесса, такой как состояние и текущий запрос. См. pg_stat_activity для получения подробных сведений.
pg_stat_replication Одна строка на каждый процесс отправителя WAL (WAL sender process), содержащая статистику репликации на резервный сервер, подключенный к данному отправителю. См. pg_stat_replication для получения подробных сведений.
pg_stat_wal_receiver Только одна строка, содержащая статистику процесса получателя WAL (WAL receiver) от сервера, подключенного к данному получателю. См. pg_stat_wal_receiver для получения подробных сведений.
pg_stat_recovery_prefetch Только одна строка, содержащая статистику о блоках, считанных упреждающе (prefetched) во время восстановления. См. pg_stat_recovery_prefetch для получения подробных сведений.
pg_stat_subscription Как минимум одна строка на каждую подписку, содержащая информацию о рабочие процессы подписки (subscription workers). См. pg_stat_subscription для получения подробных сведений.
pg_stat_ssl Одна строка на каждое соединение (обычное и соединение репликации), содержащая сведения об использовании протокола SSL в данном соединении. См. pg_stat_ssl для получения подробных сведений.
pg_stat_gssapi Одна строка на каждое соединение (обычное и соединение репликации), содержащая сведения об использовании аутентификации и шифрования GSSAPI в данном соединении. См. pg_stat_gssapi для получения подробных сведений.
pg_stat_progress_analyze Одна строка для каждого серверного процесса (backend), включая рабочие процессы автоочистки (autovacuum worker processes), выполняющего ANALYZE , с информацией о текущем прогрессе выполнения. См. Раздел 3.12.4.1 .
pg_stat_progress_create_index Одна строка для каждого серверного процесса (backend), выполняющего CREATE INDEX или REINDEX , с информацией о текущем прогрессе выполнения. См. Раздел 3.12.4.4 .
pg_stat_progress_vacuum Одна строка для каждого серверного процесса (backend), включая рабочие процессы автоочистки (autovacuum worker processes), выполняющего VACUUM , с информацией о текущем прогрессе выполнения. См. Раздел 3.12.4.5 .
pg_stat_progress_cluster Одна строка для каждого серверного процесса (backend), выполняющего CLUSTER или VACUUM FULL , с информацией о текущем прогрессе выполнения. См. Раздел 3.12.4.2 .
pg_stat_progress_basebackup Одна строка для каждого процесса передачи журнала WAL (WAL sender process), передающего базовую резервную копию, с информацией о текущем прогрессе выполнения. См. Раздел 3.12.4.6 .
pg_stat_progress_copy Одна строка для каждого серверного процесса (backend), выполняющего COPY , с информацией о текущем прогрессе выполнения. См. Раздел 3.12.4.3 .

Таблица 3.12.2. Представления собранной статистики

Имя представленияОписание
pg_stat_archiver Только одна строка, содержащая статистику работы процесса архивации журнала WAL (WAL archiver). См. pg_stat_archiver для получения подробных сведений.
pg_stat_bgwriter Только одна строка, содержащая статистику работы процесса фоновой записи (background writer). См. pg_stat_bgwriter для получения подробной информации.
pg_stat_checkpointer Только одна строка, содержащая статистику работы процесса контрольных точек (checkpointer). См. pg_stat_checkpointer для получения подробной информации.
pg_stat_database Одна строка на каждую базу данных, содержащая статистику на уровне всей базы данных. См. pg_stat_database для получения подробных сведений.
pg_stat_database_conflicts Одна строка на каждую базу данных, содержащая статистику на уровне всей базы данных об отменах запросов из-за конфликта с восстановлением на резервных серверах. См. pg_stat_database_conflicts для получения подробных сведений.
pg_stat_io Одна строка для каждой комбинации типа серверного процесса, контекста и целевого объекта, содержащая статистику ввода-вывода на уровне кластера. См. pg_stat_io для получения подробной информации.
pg_stat_replication_slots Одна строка на каждый слот репликации, содержащая статистику использования слота репликации. См. pg_stat_replication_slots для получения подробных сведений.
pg_stat_slru Одна строка на каждый SLRU, содержащая статистику операций. См. pg_stat_slru для получения подробных сведений.
pg_stat_subscription_stats Одна строка на каждую подписку, содержащая статистику об ошибках. См. pg_stat_subscription_stats для получения подробных сведений.
pg_stat_wal Только одна строка, содержащая статистику активности журнала WAL. См. pg_stat_wal для получения подробных сведений.
pg_stat_all_tables Одна строка для каждой таблицы в текущей базе данных, содержащая статистику об обращениях к данной конкретной таблице. См. pg_stat_all_tables для получения подробных сведений.
pg_stat_sys_tables Аналогично pg_stat_all_tables, за исключением того, что отображаются только системные таблицы.
pg_stat_user_tables Аналогично pg_stat_all_tables, за исключением того, что отображаются только пользовательские таблицы.
pg_stat_xact_all_tables Подобно pg_stat_all_tables , но учитывает действия, совершенные к настоящему моменту в рамках текущей транзакции (которые еще не включены в pg_stat_all_tables и связанные представления). В данном представлении отсутствуют столбцы, содержащие количество «живых» и «мертвых» строк, а также сведения об операциях очистки (vacuum) и анализа (analyze).
pg_stat_xact_sys_tables Аналогично pg_stat_xact_all_tables, за исключением того, что отображаются только системные таблицы.
pg_stat_xact_user_tables Аналогично pg_stat_xact_all_tables, за исключением того, что отображаются только пользовательские таблицы.
pg_stat_all_indexes По одной строке для каждого индекса в текущей базе данных; содержит статистику об обращениях к этому конкретному индексу. См. pg_stat_all_indexes для получения подробных сведений.
pg_stat_sys_indexes Аналогично pg_stat_all_indexes, за исключением того, что отображаются только индексы системных таблиц.
pg_stat_user_indexes Аналогично pg_stat_all_indexes , за исключением того, что отображаются только индексы пользовательских таблиц.
pg_stat_user_functions По одной строке для каждой отслеживаемой функции; содержит статистику об исполнениях этой функции. См. pg_stat_user_functions для получения подробных сведений.
pg_stat_xact_user_functions Подобно pg_stat_user_functions , но учитывает только вызовы в ходе текущей транзакции (которые еще не включены в pg_stat_user_functions ).
pg_statio_all_tables Одна строка для каждой таблицы в текущей базе данных, содержащая статистику об операциях ввода-вывода (I/O) для данной конкретной таблицы. См. pg_statio_all_tables для получения подробных сведений.
pg_statio_sys_tables Аналогично pg_statio_all_tables, за исключением того, что отображаются только системные таблицы.
pg_statio_user_tables Аналогично pg_statio_all_tables, за исключением того, что отображаются только пользовательские таблицы.
pg_statio_all_indexes По одной строке для каждого индекса в текущей базе данных, отображающей статистику ввода-вывода по данному конкретному индексу. См. pg_statio_all_indexes для получения подробных сведений.
pg_statio_sys_indexes Аналогично pg_statio_all_indexes, за исключением того, что отображаются только индексы системных таблиц.
pg_statio_user_indexes Аналогично pg_statio_all_indexes , за исключением того, что отображаются только индексы пользовательских таблиц.
pg_statio_all_sequences По одной строке для каждой последовательности в текущей базе данных, отображающей статистику ввода-вывода по данной конкретной последовательности. См. pg_statio_all_sequences для получения подробной информации.
pg_statio_sys_sequences Аналогично pg_statio_all_sequences , за исключением того, что отображаются только системные последовательности. (В настоящее время системные последовательности не определены, поэтому данное представление всегда пусто.)
pg_statio_user_sequences Аналогично pg_statio_all_sequences, за исключением того, что отображаются только пользовательские последовательности.

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

Набор представлений pg_stat_io и pg_statio_ полезен для определения эффективности буферного кэша. Их можно использовать для расчета коэффициента попадания в кэш (cache hit ratio). Обратите внимание, что хотя статистика Digital Q.DataBase по вводу-выводу фиксирует большинство случаев обращения к ядру для выполнения операций ввода-вывода, она не разделяет данные, которые пришлось считывать с диска, и те, что уже находились в кэше страниц ядра. Пользователям рекомендуется использовать Digital Q.DataBase статистические представления в сочетании с утилитами операционной системы для получения более полной картины производительности ввода-вывода своей базы данных.

3.12.2.3. pg_stat_activity #

Набор представлений pg_stat_activity представление будет содержать по одной строке на каждый процесс сервера, отображая информацию о текущей активности этого процесса.

Таблица 3.12.3. Представление pg_stat_activity

Тип столбца

Описание

datid oid

OID базы данных, к которой подключен данный процесс сервера

datname name

Имя базы данных, к которой подключен данный процесс сервера

pid integer

Идентификатор процесса данного процесса сервера

leader_pid integer

Идентификатор процесса лидера параллельной группы, если этот процесс является параллельным рабочим процессом запроса, или идентификатор процесса ведущего рабочего процесса применения (leader apply worker), если этот процесс является параллельным рабочим процессом применения. NULL указывает на то, что данный процесс является лидером параллельной группы или ведущим рабочим процессом применения (leader apply worker), либо не участвует в параллельных операциях.

usesysid oid

OID пользователя, подключенного к данному серверному процессу

usename name

Имя пользователя, подключенного к данному серверному процессу

application_name text

Имя приложения, подключенного к данному серверному процессу

client_addr inet

IP-адрес клиента, подключенного к данному серверному процессу. Если данное поле имеет значение null, это означает, что клиент либо подключен через Unix-сокет на сервере, либо это внутренний процесс, такой как процесс автоочистки (autovacuum).

client_hostname text

Имя хоста подключенного клиента, полученное в результате обратного DNS-запроса для client_addr . Данное поле будет принимает значение, отличное от NULL, только для IP-соединений и только при условии, что log_hostname активировано.

client_port integer

номер TCP-порта, используемый клиентом для взаимодействия с данным бэкендом, или -1 в случае использования Unix-сокета. Если данное поле содержит значение NULL, это указывает на то, что процесс является внутренним процессом сервера.

backend_start timestamp with time zone

Время запуска данного процесса. Для клиентских бэкендов это время подключения клиента к серверу.

xact_start timestamp with time zone

Время начала текущей транзакции данного процесса или значение NULL, если активная транзакция отсутствует. Если текущий запрос является первым в транзакции, значение в данном столбце совпадает со значением в query_start столбце.

query_start timestamp with time zone

Время начала выполняемого в данный момент запроса или, если state не имеет значения active , время начала последнего запроса был запущен

state_change timestamp with time zone

Время, когда state был изменен в последний раз

wait_event_type text

Тип события, которого ожидает серверный процесс (backend), если оно имеется; в противном случае — NULL. См. Таблица 3.12.4 .

wait_event text

Название события ожидания, если серверный процесс (backend) в данный момент ожидает, в противном случае — NULL. См. Таблица 3.12.5 по Таблица 3.12.13 .

state text

Текущее общее состояние данного серверного процесса (backend). Возможные значения:

  • active : серверный процесс (backend) выполняет запрос.

  • idle : серверный процесс (backend) ожидает новую команду клиента.

  • idle in transaction : серверный процесс (backend) находится в транзакции, но в данный момент не выполняет запрос.

  • idle in transaction (aborted) : данное состояние аналогично состоянию idle in transaction , за исключением того, что один из операторов в транзакции вызвал ошибку.

  • вызов функции fastpath : обслуживающий процесс (backend) выполняет функцию быстрого пути (fast-path function).

  • отключено : данное состояние возвращается, если track_activities отключен в данном обслуживающем процессе.

backend_xid xid

Идентификатор транзакции верхнего уровня для этого обслуживающего процесса (при наличии); см. Раздел 7.16.1 .

backend_xmin xid

Текущего обслуживающего процесса xmin граница (horizon).

query_id bigint

Идентификатор последнего запроса данного обслуживающего процесса. Если state имеет значение active это поле содержит идентификатор текущего выполняемого запроса. Во всех остальных состояниях в нем отображается идентификатор последнего выполненного запроса. Идентификаторы запросов по умолчанию не вычисляются, поэтому данное поле будет иметь значение null, если не compute_query_id включен соответствующий параметр или не настроен сторонний модуль, вычисляющий идентификаторы запросов.

query text

Текст последнего запроса данного обслуживающего процесса. Если state имеет значение active в этом поле отображается выполняемый в данный момент запрос. Во всех остальных состояниях в поле указывается последний запрос, который был выполнен. По умолчанию текст запроса усекается до 1024 байт; данное значение можно изменить с помощью параметра track_activity_query_size .

backend_type text

Тип текущего обслуживающего процесса. Возможные типы: autovacuum launcher , autovacuum worker , logical replication launcher , logical replication worker , parallel worker , background writer , client backend , checkpointer , archiver , standalone backend , startup , walreceiver , walsender , walwriter и walsummarizer . Кроме того, фоновые рабочие процессы, зарегистрированные расширениями, могут иметь дополнительные типы.


Примечание

Данные wait_event и state столбцы являются независимыми. Если обслуживающий процесс находится в active состоянии, он может как ожидать, так и не ожидать waiting какого-либо события. Если состояние — active и wait_event не является пустым (non-null), это означает, что запрос выполняется, но заблокирован в какой-то части системы.

Таблица 3.12.4. Типы событий ожидания

Тип события ожиданияОписание
Активность Процесс сервера простаивает (idle). Данный тип события указывает на то, что процесс ожидает активности в своем основном цикле обработки. wait_event позволяет определить конкретную точку ожидания; см. Таблица 3.12.5 .
BufferPin Процесс сервера ожидает монопольного доступа к буферу данных. Ожидания закрепления буфера (buffer pin) могут быть длительными, если другой процесс удерживает открытый курсор, последним считавший данные из соответствующего буфера. См. Таблица 3.12.6 .
Client Процесс сервера ожидает активности в сокете, подключенном к пользовательскому приложению. Таким образом, сервер ожидает события, не зависящего от его внутренних процессов. wait_event позволяет определить конкретную точку ожидания; см. Таблица 3.12.7 .
Extension Процесс сервера ожидает выполнения некоторого условия, определенного модулем расширения. См. Таблица 3.12.8 .
InjectionPoint Процесс сервера ожидает достижения точкой внедрения (injection point) состояния, определенного в тесте. См. Раздел 5.1.10.13 для получения подробной информации. Данный тип не имеет предопределенных точек ожидания.
IO Процесс сервера ожидает завершения операции ввода-вывода (I/O). wait_event позволяет определить конкретную точку ожидания; см. Таблица 3.12.9 .
IPC Процесс сервера ожидает взаимодействия с другим процессом сервера. wait_event позволит идентифицировать конкретную точку ожидания; см. Таблица 3.12.10 .
Lock Процесс сервера ожидает получения тяжеловесной блокировки (heavyweight lock). Тяжеловесные блокировки, также известные как блокировки менеджера блокировок или просто блокировки, в первую очередь защищают видимые на уровне SQL объекты, такие как таблицы. Однако они также используются для обеспечения взаимного исключения при определенных внутренних операциях, таких как расширение отношений (relation extension). wait_event идентифицирует тип ожидаемой блокировки; см. Таблица 3.12.11 .
LWLock Процесс сервера ожидает получения легковесной блокировки (lightweight lock). Большинство таких блокировок защищают определенную структуру данных в разделяемой памяти. wait_event будет содержать имя, определяющее назначение легковесной блокировки. (Некоторые блокировки имеют уникальные имена; другие относятся к группе блокировок со схожим назначением.) См. Таблица 3.12.12 .
Timeout Процесс сервера ожидает истечения тайм-аута. wait_event идентифицирует конкретную точку ожидания; см. Таблица 3.12.13 .

Таблица 3.12.5. Wait Events of Type Activity

Activity Wait EventDescription
ArchiverMainWaiting in main loop of archiver process.
AutovacuumMainWaiting in main loop of autovacuum launcher process.
BgwriterHibernateWaiting in background writer process, hibernating.
BgwriterMainWaiting in main loop of background writer process.
CheckpointerMainWaiting in main loop of checkpointer process.
LogicalApplyMainWaiting in main loop of logical replication apply process.
LogicalLauncherMainWaiting in main loop of logical replication launcher process.
LogicalParallelApplyMainWaiting in main loop of logical replication parallel apply process.
RecoveryWalStreamWaiting in main loop of startup process for WAL to arrive, during streaming recovery.
ReplicationSlotsyncMainWaiting in main loop of slot sync worker.
ReplicationSlotsyncShutdownWaiting for slot sync worker to shut down.
SysloggerMainWaiting in main loop of syslogger process.
WalReceiverMainWaiting in main loop of WAL receiver process.
WalSenderMainWaiting in main loop of WAL sender process.
WalSummarizerWalWaiting in WAL summarizer for more WAL to be generated.
WalWriterMainWaiting in main loop of WAL writer process.

Таблица 3.12.6. Wait Events of Type Bufferpin

BufferPin Wait EventDescription
BufferPinWaiting to acquire an exclusive pin on a buffer.

Таблица 3.12.7. Wait Events of Type Client

Client Wait EventDescription
ClientReadWaiting to read data from the client.
ClientWriteWaiting to write data to the client.
GssOpenServerWaiting to read data from the client while establishing a GSSAPI session.
LibpqwalreceiverConnectWaiting in WAL receiver to establish connection to remote server.
LibpqwalreceiverReceiveWaiting in WAL receiver to receive data from remote server.
SslOpenServerWaiting for SSL while attempting connection.
WaitForStandbyConfirmationWaiting for WAL to be received and flushed by the physical standby.
WalSenderWaitForWalWaiting for WAL to be flushed in WAL sender process.
WalSenderWriteDataWaiting for any activity when processing replies from WAL receiver in WAL sender process.

Таблица 3.12.8. Wait Events of Type Extension

Extension Wait EventDescription
ExtensionWaiting in an extension.

Таблица 3.12.9. Wait Events of Type Io

IO Wait EventDescription
BasebackupReadWaiting for base backup to read from a file.
BasebackupSyncWaiting for data written by a base backup to reach durable storage.
BasebackupWriteWaiting for base backup to write to a file.
BuffileReadWaiting for a read from a buffered file.
BuffileTruncateWaiting for a buffered file to be truncated.
BuffileWriteWaiting for a write to a buffered file.
ControlFileReadWaiting for a read from the pg_control file.
ControlFileSyncWaiting for the pg_control file to reach durable storage.
ControlFileSyncUpdateWaiting for an update to the pg_control file to reach durable storage.
ControlFileWriteWaiting for a write to the pg_control file.
ControlFileWriteUpdateWaiting for a write to update the pg_control file.
CopyFileReadWaiting for a read during a file copy operation.
CopyFileWriteWaiting for a write during a file copy operation.
DataFileExtendWaiting for a relation data file to be extended.
DataFileFlushWaiting for a relation data file to reach durable storage.
DataFileImmediateSyncWaiting for an immediate synchronization of a relation data file to durable storage.
DataFilePrefetchWaiting for an asynchronous prefetch from a relation data file.
DataFileReadWaiting for a read from a relation data file.
DataFileSyncWaiting for changes to a relation data file to reach durable storage.
DataFileTruncateWaiting for a relation data file to be truncated.
DataFileWriteWaiting for a write to a relation data file.
DsmAllocateWaiting for a dynamic shared memory segment to be allocated.
DsmFillZeroWriteWaiting to fill a dynamic shared memory backing file with zeroes.
LockFileAddtodatadirReadWaiting for a read while adding a line to the data directory lock file.
LockFileAddtodatadirSyncWaiting for data to reach durable storage while adding a line to the data directory lock file.
LockFileAddtodatadirWriteWaiting for a write while adding a line to the data directory lock file.
LockFileCreateReadWaiting to read while creating the data directory lock file.
LockFileCreateSyncWaiting for data to reach durable storage while creating the data directory lock file.
LockFileCreateWriteWaiting for a write while creating the data directory lock file.
LockFileRecheckdatadirReadWaiting for a read during recheck of the data directory lock file.
LogicalRewriteCheckpointSyncWaiting for logical rewrite mappings to reach durable storage during a checkpoint.
LogicalRewriteMappingSyncWaiting for mapping data to reach durable storage during a logical rewrite.
LogicalRewriteMappingWriteWaiting for a write of mapping data during a logical rewrite.
LogicalRewriteSyncWaiting for logical rewrite mappings to reach durable storage.
LogicalRewriteTruncateWaiting for truncate of mapping data during a logical rewrite.
LogicalRewriteWriteWaiting for a write of logical rewrite mappings.
RelationMapReadWaiting for a read of the relation map file.
RelationMapReplaceWaiting for durable replacement of a relation map file.
RelationMapWriteWaiting for a write to the relation map file.
ReorderBufferReadWaiting for a read during reorder buffer management.
ReorderBufferWriteWaiting for a write during reorder buffer management.
ReorderLogicalMappingReadWaiting for a read of a logical mapping during reorder buffer management.
ReplicationSlotReadWaiting for a read from a replication slot control file.
ReplicationSlotRestoreSyncWaiting for a replication slot control file to reach durable storage while restoring it to memory.
ReplicationSlotSyncWaiting for a replication slot control file to reach durable storage.
ReplicationSlotWriteWaiting for a write to a replication slot control file.
SlruFlushSyncWaiting for SLRU data to reach durable storage during a checkpoint or database shutdown.
SlruReadWaiting for a read of an SLRU page.
SlruSyncWaiting for SLRU data to reach durable storage following a page write.
SlruWriteWaiting for a write of an SLRU page.
SnapbuildReadWaiting for a read of a serialized historical catalog snapshot.
SnapbuildSyncWaiting for a serialized historical catalog snapshot to reach durable storage.
SnapbuildWriteWaiting for a write of a serialized historical catalog snapshot.
TimelineHistoryFileSyncWaiting for a timeline history file received via streaming replication to reach durable storage.
TimelineHistoryFileWriteWaiting for a write of a timeline history file received via streaming replication.
TimelineHistoryReadWaiting for a read of a timeline history file.
TimelineHistorySyncWaiting for a newly created timeline history file to reach durable storage.
TimelineHistoryWriteWaiting for a write of a newly created timeline history file.
TwophaseFileReadWaiting for a read of a two phase state file.
TwophaseFileSyncWaiting for a two phase state file to reach durable storage.
TwophaseFileWriteWaiting for a write of a two phase state file.
VersionFileSyncWaiting for the version file to reach durable storage while creating a database.
VersionFileWriteWaiting for the version file to be written while creating a database.
WalsenderTimelineHistoryReadWaiting for a read from a timeline history file during a walsender timeline command.
WalBootstrapSyncWaiting for WAL to reach durable storage during bootstrapping.
WalBootstrapWriteWaiting for a write of a WAL page during bootstrapping.
WalCopyReadWaiting for a read when creating a new WAL segment by copying an existing one.
WalCopySyncWaiting for a new WAL segment created by copying an existing one to reach durable storage.
WalCopyWriteWaiting for a write when creating a new WAL segment by copying an existing one.
WalInitSyncWaiting for a newly initialized WAL file to reach durable storage.
WalInitWriteWaiting for a write while initializing a new WAL file.
WalReadWaiting for a read from a WAL file.
WalSummaryReadWaiting for a read from a WAL summary file.
WalSummaryWriteWaiting for a write to a WAL summary file.
WalSyncWaiting for a WAL file to reach durable storage.
WalSyncMethodAssignWaiting for data to reach durable storage while assigning a new WAL sync method.
WalWriteWaiting for a write to a WAL file.

Таблица 3.12.10. Wait Events of Type Ipc

IPC Wait EventDescription
AppendReadyWaiting for subplan nodes of an Append plan node to be ready.
ArchiveCleanupCommandWaiting for archive_cleanup_command to complete.
ArchiveCommandWaiting for archive_command to complete.
AutonomousXactUpdateWaiting for autonomous transaction queue to update.
AutonomousXactWriteWaiting for enqueue function to populate queue.
BackendTerminationWaiting for the termination of another backend.
BackupWaitWalArchiveWaiting for WAL files required for a backup to be successfully archived.
BgworkerShutdownWaiting for background worker to shut down.
BgworkerStartupWaiting for background worker to start up.
BtreePageWaiting for the page number needed to continue a parallel B-tree scan to become available.
BufferIoWaiting for buffer I/O to complete.
CheckpointDelayCompleteWaiting for a backend that blocks a checkpoint from completing.
CheckpointDelayStartWaiting for a backend that blocks a checkpoint from starting.
CheckpointDoneWaiting for a checkpoint to complete.
CheckpointStartWaiting for a checkpoint to start.
ExecuteGatherWaiting for activity from a child process while executing a Gather plan node.
HashBatchAllocateWaiting for an elected Parallel Hash participant to allocate a hash table.
HashBatchElectWaiting to elect a Parallel Hash participant to allocate a hash table.
HashBatchLoadWaiting for other Parallel Hash participants to finish loading a hash table.
HashBuildAllocateWaiting for an elected Parallel Hash participant to allocate the initial hash table.
HashBuildElectWaiting to elect a Parallel Hash participant to allocate the initial hash table.
HashBuildHashInnerWaiting for other Parallel Hash participants to finish hashing the inner relation.
HashBuildHashOuterWaiting for other Parallel Hash participants to finish partitioning the outer relation.
HashGrowBatchesDecideWaiting to elect a Parallel Hash participant to decide on future batch growth.
HashGrowBatchesElectWaiting to elect a Parallel Hash participant to allocate more batches.
HashGrowBatchesFinishWaiting for an elected Parallel Hash participant to decide on future batch growth.
HashGrowBatchesReallocateWaiting for an elected Parallel Hash participant to allocate more batches.
HashGrowBatchesRepartitionWaiting for other Parallel Hash participants to finish repartitioning.
HashGrowBucketsElectWaiting to elect a Parallel Hash participant to allocate more buckets.
HashGrowBucketsReallocateWaiting for an elected Parallel Hash participant to finish allocating more buckets.
HashGrowBucketsReinsertWaiting for other Parallel Hash participants to finish inserting tuples into new buckets.
LogicalApplySendDataWaiting for a logical replication leader apply process to send data to a parallel apply process.
LogicalParallelApplyStateChangeWaiting for a logical replication parallel apply process to change state.
LogicalSyncDataWaiting for a logical replication remote server to send data for initial table synchronization.
LogicalSyncStateChangeWaiting for a logical replication remote server to change state.
MessageQueueInternalWaiting for another process to be attached to a shared message queue.
MessageQueuePutMessageWaiting to write a protocol message to a shared message queue.
MessageQueueReceiveWaiting to receive bytes from a shared message queue.
MessageQueueSendWaiting to send bytes to a shared message queue.
MultixactCreationWaiting for a multixact creation to complete.
ParallelBitmapScanWaiting for parallel bitmap scan to become initialized.
ParallelCreateIndexScanWaiting for parallel CREATE INDEX workers to finish heap scan.
ParallelFinishWaiting for parallel workers to finish computing.
ProcarrayGroupUpdateWaiting for the group leader to clear the transaction ID at transaction end.
ProcSignalBarrierWaiting for a barrier event to be processed by all backends.
PromoteWaiting for standby promotion.
RecoveryConflictSnapshotWaiting for recovery conflict resolution for a vacuum cleanup.
RecoveryConflictTablespaceWaiting for recovery conflict resolution for dropping a tablespace.
RecoveryEndCommandWaiting for recovery_end_command to complete.
RecoveryPauseWaiting for recovery to be resumed.
ReplicationOriginDropWaiting for a replication origin to become inactive so it can be dropped.
ReplicationSlotDropWaiting for a replication slot to become inactive so it can be dropped.
RestoreCommandWaiting for restore_command to complete.
SafeSnapshotWaiting to obtain a valid snapshot for a READ ONLY DEFERRABLE transaction.
SyncRepWaiting for confirmation from a remote server during synchronous replication.
WalReceiverExitWaiting for the WAL receiver to exit.
WalReceiverWaitStartWaiting for startup process to send initial data for streaming replication.
WalSummaryReadyWaiting for a new WAL summary to be generated.
XactGroupUpdateWaiting for the group leader to update transaction status at transaction end.

Таблица 3.12.11. Wait Events of Type Lock

Lock Wait EventDescription
advisoryWaiting to acquire an advisory user lock.
applytransactionWaiting to acquire a lock on a remote transaction being applied by a logical replication subscriber.
extendWaiting to extend a relation.
frozenidWaiting to update pg_database.datfrozenxid and pg_database.datminmxid.
objectWaiting to acquire a lock on a non-relation database object.
pageWaiting to acquire a lock on a page of a relation.
relationWaiting to acquire a lock on a relation.
spectokenWaiting to acquire a speculative insertion lock.
transactionidWaiting for a transaction to finish.
tupleWaiting to acquire a lock on a tuple.
userlockWaiting to acquire a user lock.
virtualxidWaiting to acquire a virtual transaction ID lock; see Раздел 7.16.1.

Таблица 3.12.12. Wait Events of Type Lwlock

LWLock Wait EventDescription
AddinShmemInitWaiting to manage an extension's space allocation in shared memory.
AutoFileWaiting to update the postgresql.auto.conf file.
AutovacuumWaiting to read or update the current state of autovacuum workers.
AutovacuumScheduleWaiting to ensure that a table selected for autovacuum still needs vacuuming.
BackgroundWorkerWaiting to read or update background worker state.
BtreeVacuumWaiting to read or update vacuum-related information for a B-tree index.
BufferContentWaiting to access a data page in memory.
BufferMappingWaiting to associate a data block with a buffer in the buffer pool.
CheckpointerCommWaiting to manage fsync requests.
CommitTsWaiting to read or update the last value set for a transaction commit timestamp.
CommitTsBufferWaiting for I/O on a commit timestamp SLRU buffer.
CommitTsSLRUWaiting to access the commit timestamp SLRU cache.
ControlFileWaiting to read or update the pg_control file or create a new WAL file.
DSMRegistryWaiting to read or update the dynamic shared memory registry.
DSMRegistryDSAWaiting to access dynamic shared memory registry's dynamic shared memory allocator.
DSMRegistryHashWaiting to access dynamic shared memory registry's shared hash table.
DynamicSharedMemoryControlWaiting to read or update dynamic shared memory allocation information.
InjectionPointWaiting to read or update information related to injection points.
LockFastPathWaiting to read or update a process' fast-path lock information.
LockManagerWaiting to read or update information about «heavyweight» locks.
LogicalRepLauncherDSAWaiting to access logical replication launcher's dynamic shared memory allocator.
LogicalRepLauncherHashWaiting to access logical replication launcher's shared hash table.
LogicalRepWorkerWaiting to read or update the state of logical replication workers.
MultiXactGenWaiting to read or update shared multixact state.
MultiXactMemberBufferWaiting for I/O on a multixact member SLRU buffer.
MultiXactMemberSLRUWaiting to access the multixact member SLRU cache.
MultiXactOffsetBufferWaiting for I/O on a multixact offset SLRU buffer.
MultiXactOffsetSLRUWaiting to access the multixact offset SLRU cache.
MultiXactTruncationWaiting to read or truncate multixact information.
NotifyBufferWaiting for I/O on a NOTIFY message SLRU buffer.
NotifyQueueWaiting to read or update NOTIFY messages.
NotifyQueueTailWaiting to update limit on NOTIFY message storage.
NotifySLRUWaiting to access the NOTIFY message SLRU cache.
OidGenWaiting to allocate a new OID.
ParallelAppendWaiting to choose the next subplan during Parallel Append plan execution.
ParallelHashJoinWaiting to synchronize workers during Parallel Hash Join plan execution.
ParallelQueryDSAWaiting for parallel query dynamic shared memory allocation.
ParallelVacuumDSAWaiting for parallel vacuum dynamic shared memory allocation.
PerSessionDSAWaiting for parallel query dynamic shared memory allocation.
PerSessionRecordTypeWaiting to access a parallel query's information about composite types.
PerSessionRecordTypmodWaiting to access a parallel query's information about type modifiers that identify anonymous record types.
PerXactPredicateListWaiting to access the list of predicate locks held by the current serializable transaction during a parallel query.
PgStatsDataWaiting for shared memory stats data access.
PgStatsDSAWaiting for stats dynamic shared memory allocator access.
PgStatsHashWaiting for stats shared memory hash table access.
PredicateLockManagerWaiting to access predicate lock information used by serializable transactions.
ProcArrayWaiting to access the shared per-process data structures (typically, to get a snapshot or report a session's transaction ID).
QAutonomousRegistryWaiting for autonomous cmd shared memory hash table access.
QLicenseCheckWaiting to read or update license status information.
RelationMappingWaiting to read or update a pg_filenode.map file (used to track the filenode assignments of certain system catalogs).
RelCacheInitWaiting to read or update a pg_internal.init relation cache initialization file.
ReplicationOriginWaiting to create, drop or use a replication origin.
ReplicationOriginStateWaiting to read or update the progress of one replication origin.
ReplicationSlotAllocationWaiting to allocate or free a replication slot.
ReplicationSlotControlWaiting to read or update replication slot state.
ReplicationSlotIOWaiting for I/O on a replication slot.
SerialBufferWaiting for I/O on a serializable transaction conflict SLRU buffer.
SerialControlWaiting to read or update shared pg_serial state.
SerializableFinishedListWaiting to access the list of finished serializable transactions.
SerializablePredicateListWaiting to access the list of predicate locks held by serializable transactions.
SerializableXactHashWaiting to read or update information about serializable transactions.
SerialSLRUWaiting to access the serializable transaction conflict SLRU cache.
SharedTidBitmapWaiting to access a shared TID bitmap during a parallel bitmap index scan.
SharedTupleStoreWaiting to access a shared tuple store during parallel query.
ShmemIndexWaiting to find or allocate space in shared memory.
SInvalReadWaiting to retrieve messages from the shared catalog invalidation queue.
SInvalWriteWaiting to add a message to the shared catalog invalidation queue.
SubtransBufferWaiting for I/O on a sub-transaction SLRU buffer.
SubtransSLRUWaiting to access the sub-transaction SLRU cache.
SyncRepWaiting to read or update information about the state of synchronous replication.
SyncScanWaiting to select the starting location of a synchronized table scan.
TablespaceCreateWaiting to create or drop a tablespace.
TwoPhaseStateWaiting to read or update the state of prepared transactions.
WaitEventCustomWaiting to read or update custom wait events information.
WALBufMappingWaiting to replace a page in WAL buffers.
WALInsertWaiting to insert WAL data into a memory buffer.
WALSummarizerWaiting to read or update WAL summarization state.
WALWriteWaiting for WAL buffers to be written to disk.
WrapLimitsVacuumWaiting to update limits on transaction id and multixact consumption.
XactBufferWaiting for I/O on a transaction status SLRU buffer.
XactSLRUWaiting to access the transaction status SLRU cache.
XactTruncationWaiting to execute pg_xact_status or update the oldest transaction ID available to it.
XidGenWaiting to allocate a new transaction ID.

Таблица 3.12.13. Wait Events of Type Timeout

Timeout Wait EventDescription
BaseBackupThrottleWaiting during base backup when throttling activity.
CheckpointWriteDelayWaiting between writes while performing a checkpoint.
PgSleepWaiting due to a call to pg_sleep or a sibling function.
RecoveryApplyDelayWaiting to apply WAL during recovery because of a delay setting.
RecoveryRetrieveRetryIntervalWaiting during recovery when WAL data is not available from any source (pg_wal, archive or stream).
RegisterSyncRequestWaiting while sending synchronization requests to the checkpointer, because the request queue is full.
SpinDelayWaiting while acquiring a contended spinlock.
VacuumDelayWaiting in a cost-based vacuum delay point.
VacuumTruncateWaiting to acquire an exclusive lock to truncate off any empty pages at the end of a table vacuumed.
WalSummarizerErrorWaiting after a WAL summarizer error.

Примеры просмотра событий ожидания:

SELECT pid, wait_event_type, wait_event FROM pg_stat_activity WHERE wait_event is NOT NULL;
 pid  | wait_event_type | wait_event
------+-----------------+------------
 2540 | Lock            | relation
 6644 | LWLock          | ProcArray
(2 строки)

SELECT a.pid, a.wait_event, w.description
  FROM pg_stat_activity a JOIN
       pg_wait_events w ON (a.wait_event_type = w.type AND
                            a.wait_event = w.name)
  WHERE a.wait_event is NOT NULL and a.state = 'active';
-[ ЗАПИСЬ 1 ]------------------------------------------------------​ ------------
pid         | 686674
wait_event  | WALInitSync
description | Ожидание записи инициализированного файла WAL в постоянное хранилище

Примечание

Расширения могут добавлять Extension , InjectionPoint . и LWLock события в списки, представленные в Таблица 3.12.8 и Таблица 3.12.12 . В ряде случаев имя LWLock назначенное расширением, будет доступно не во всех процессах сервера. Оно может отображаться просто как « extension » вместо имени, назначенного расширением.

3.12.2.4. pg_stat_replication #

Набор представлений pg_stat_replication представление содержит по одной строке на каждый процесс отправителя журнала WAL (WAL sender process), отображая статистику репликации на подключенный к этому отправителю резервный сервер. Отображаются только непосредственно подключенные резервные серверы; информация о нижестоящих резервных серверах недоступна.

Таблица 3.12.14. Представление pg_stat_replication

Тип столбца

Описание

pid integer

Идентификатор процесса передачи журнала WAL (WAL sender process)

usesysid oid

OID пользователя, подключенного к этому процессу передачи журнала WAL

usename name

Имя пользователя, подключенного

application_name text

Имя приложения, подключенного к этому процессу передачи журнала WAL

client_addr inet

IP-адрес клиента, подключенного к этому процессу передачи журнала WAL. Если это поле имеет значение null, это означает, что клиент подключен через Unix-сокет на машине сервера.

client_hostname text

Имя хоста подключенного клиента, полученное в результате обратного DNS-запроса для client_addr . Данное поле будет принимает значение, отличное от NULL, только для IP-соединений и только при условии, что log_hostname активировано.

client_port integer

номер TCP-порта, используемый клиентом для взаимодействия с этим процессом передачи журнала WAL, или -1 если используется Unix-сокет

backend_start timestamp with time zone

Время запуска данного процесса, т. е. время, когда клиент подключился к этому процессу передачи журнала WAL

backend_xmin xid

Данного резервного сервера xmin сообщенный горизонт от hot_standby_feedback .

state text

Текущее состояние процесса передачи журнала WAL. Возможные значения:

  • startup : данный процесс передачи журнала WAL запускается.

  • catchup : резервный сервер, подключенный к этому процессу отправки журнала WAL, наверстывает отставание от основного сервера.

  • streaming : процесс отправки журнала WAL выполняет потоковую передачу изменений после того, как подключенный резервный сервер синхронизировался с основным.

  • backup : процесс отправки журнала WAL передает резервную копию.

  • stopping : процесс отправки журнала WAL завершает работу.

sent_lsn pg_lsn

Последняя позиция в журнале WAL, отправленная по данному соединению

write_lsn pg_lsn

Последняя позиция в журнале WAL, записанная на диск этим резервным сервером

flush_lsn pg_lsn

Последняя позиция в журнале WAL, сброшенная на диск этим резервным сервером сервером

replay_lsn pg_lsn

Последняя позиция в журнале WAL, примененная в базе данных на этом резервном сервере

write_lag интервал

Время, прошедшее между локальным сбросом последних записей журнала WAL на диск и получением уведомление о том, что данный резервный сервер выполнил запись (но еще не выполнил сброс данных на диск или их применение). Это может быть использовано для оценки задержки, synchronous_commit уровень remote_write возникающей при фиксации транзакции, если данный сервер был сконфигурирован как синхронный резервный сервер.

flush_lag интервал

Время, прошедшее между локальным сбросом последних записей журнала WAL на диск и получением уведомление о том, что данный резервный сервер выполнил запись и сброс данных на диск (но еще не применил их). Это может быть использовано для оценки задержки, synchronous_commit уровень вкл возникающей при фиксации транзакции, если данный сервер был сконфигурирован как синхронный резервный сервер.

replay_lag интервал

Время, прошедшее между локальным сбросом последних записей журнала WAL на диск и получением уведомление о том, что данный резервный сервер выполнил запись, сброс на диск и применение данных. Это может быть использовано для оценки задержки, synchronous_commit уровень remote_apply возникающей при фиксации транзакции, если данный сервер был сконфигурирован как синхронный резервный сервер.

sync_priority integer

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

sync_state text

Состояние синхронизации данного резервного сервера. Возможные значения:

  • async : данный резервный сервер является асинхронным.

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

  • sync : данный резервный сервер является синхронным.

  • quorum : данный резервный сервер рассматривается как кандидат для синхронных резервных серверов в рамках кворума.

reply_time timestamp with time zone

Время отправки последнего ответного сообщения, полученного от резервного сервера


Значения задержки, указанные в представлении pg_stat_replication представляют собой результаты измерения времени, затраченного на запись, сброс (flush) и воспроизведение последних записей журнала WAL, а также на уведомление об этом отправителя. Эти показатели отражают задержку фиксации, которая была бы (или была) внесена каждым уровнем синхронной фиксации, если бы удаленный сервер был настроен как синхронный резервный сервер. Для асинхронного резервного сервера данный столбец replay_lag показывает приблизительную задержку перед тем, как последние транзакции станут видимыми для запросов. Если резервный сервер полностью синхронизирован с основным сервером и активность в журнале WAL отсутствует, последние измеренные значения задержки будут отображаться в течение короткого времени, после чего примут значение NULL.

Для физической репликации значения времени задержки вычисляются автоматически. Плагины логического декодирования могут опционально формировать сообщения для отслеживания; в противном случае механизм отслеживания будет просто отображать задержку со значением NULL.

Примечание

Передаваемые значения времени задержки не являются прогнозом того, сколько времени потребуется резервному серверу, чтобы догнать отправляющий сервер при текущей скорости воспроизведения. Подобная система показывала бы схожие интервалы во время генерации нового журнала WAL, но значения бы отличались при переходе отправляющего сервера в режим ожидания. В частности, когда резервный сервер полностью синхронизирован, pg_stat_replication отображается время, затраченное на запись, сброс на диск и воспроизведение последней сообщённой позиции в журнале WAL, а не нулевое значение, как могли бы ожидать некоторые пользователи. Это соответствует задаче измерения задержек синхронной фиксации и видимости недавних транзакций записи. Чтобы не вводить в заблуждение пользователей, ожидающих иную модель задержки, в столбцах задержки снова отображается NULL после короткого периода простоя полностью синхронизированной системы. Системы мониторинга должны определять, следует ли интерпретировать это как отсутствие данных, нулевое значение или продолжать отображать последнее известное значение.

3.12.2.5. pg_stat_replication_slots #

Набор представлений pg_stat_replication_slots представление будет содержать по одной строке для каждого слота логической репликации, отображая статистику его использования.

Таблица 3.12.15. Представление pg_stat_replication_slots

Тип столбца

Описание

slot_name text

Уникальный идентификатор слота репликации в рамках всего кластера

spill_txns bigint

Количество транзакций, выгруженных на диск после того, как объем памяти, используемой логическим декодированием для обработки изменений из журнала WAL, превысил logical_decoding_work_mem . Данный счетчик инкрементируется как для транзакций верхнего уровня, так и для подтранзакций.

spill_count bigint

Количество выгрузок транзакций на диск в процессе декодирования изменений из журнала WAL для данного слота. Этот счетчик увеличивается каждый раз, когда выполняется выгрузка транзакции; одна и та же транзакция может быть выгружена многократно.

spill_bytes bigint

Объем данных декодированных транзакций, выгруженных на диск при выполнении декодирования изменений из журнала WAL для данного слота. Этот и другие счетчики выгрузки могут использоваться для оценки интенсивности ввода-вывода при логическом декодировании и позволяют выполнять оптимизацию logical_decoding_work_mem .

stream_txns bigint

Количество выполняемых транзакций, переданных в поток вывода декодирования модулю вывода после того, как объем памяти, используемой процессом логического декодирования для обработки изменений из журнала WAL для данного слота превысил logical_decoding_work_mem . Только для потоковой передачи работает с транзакциями верхнего уровня (подтранзакции не могут передаваться потоком независимо), поэтому значение счетчика не увеличивается для подтранзакций.

stream_count bigint

Количество случаев передачи выполняющихся транзакций модулю вывода декодирования в процессе обработки изменений из журнала WAL для данного слота. Данный счетчик увеличивается при каждой потоковой передаче транзакции, при этом одна и та же транзакция может передаваться потоком многократно.

stream_bytes bigint

Объем данных транзакций, декодированных для потоковой передачи выполняющихся транзакций модулю вывода декодирования при обработке изменений из журнала WAL для данного слота. Этот и другие счетчики потоковой передачи для данного слота могут использоваться для настройки параметров logical_decoding_work_mem .

total_txns bigint

Количество декодированных транзакций, отправленных модулю вывода декодирования для данного слота. Учитываются только транзакции верхнего уровня; значение счетчика не увеличивается для подтранзакций. Обратите внимание, что сюда включаются транзакции, которые передаются в потоковом режиме и/или сбрасываются на диск.

total_bytes bigint

Объем данных транзакций, декодированных для отправки в выходной плагин декодирования при декодировании изменений из журнала WAL для данного слота. Обратите внимание, что сюда включаются данные, передаваемые в потоковом режиме и/или сбрасываемые на диск.

stats_reset timestamp with time zone

Время последнего сброса данных статистики


3.12.2.6. pg_stat_wal_receiver #

Набор представлений pg_stat_wal_receiver представление будет содержать только одну строку, содержащую статистику процесса-получателя WAL (WAL receiver) с сервера, к которому подключен этот получатель.

Таблица 3.12.16. Представление pg_stat_wal_receiver

Тип столбца

Описание

pid integer

Идентификатор процесса получателя WAL (WAL receiver)

статус text

Статус активности процесса-получателя WAL (WAL receiver)

receive_start_lsn pg_lsn

Первое местоположение в журнале WAL, использованное при запуске процесса-получателя WAL запущен

receive_start_tli integer

Первый номер линии времени, использованный при запуске процесса-получателя WAL

written_lsn pg_lsn

Последнее местоположение в журнале WAL, которое уже получено и записано на диск, но не сброшено (flushed). Данный параметр не следует использовать для проверки целостности данных.

flushed_lsn pg_lsn

Последнее местоположение в журнале WAL, которое уже получено и сброшено на диск; начальное значение этого поля соответствует первому использованному местоположению в журнале при запуске процесса-приемника журнала WAL (WAL receiver)

received_tli integer

Номер линии времени (timeline) последней позиции в журнале упреждающей записи, которая была получена и записана на диск; начальным значением этого поля является номер линии времени первой позиции в журнале, использованной при запуске процесса-приемника журнала WAL (WAL receiver)

last_msg_send_time timestamp with time zone

Время отправки последнего сообщения, полученного от исходного процесса-отправителя журнала WAL (WAL sender)

last_msg_receipt_time timestamp with time zone

Время приема последнего сообщения, полученного от исходного процесса-отправителя журнала WAL (WAL sender)

latest_end_lsn pg_lsn

Последняя позиция в журнале упреждающей записи, о которой было сообщено исходному процессу-отправителю журнала WAL (WAL sender)

latest_end_time timestamp with time zone

Время последней позиции в журнале упреждающей записи, о которой было сообщено исходному процессу-отправителю журнала WAL (WAL sender)

slot_name text

Имя слота репликации, используемого данным процессом-приемником журнала WAL (WAL receiver)

sender_host text

Узел (host) Digital Q.DataBase экземпляра, к которому подключен данный процесс-приемник журнала WAL (WAL receiver). Это может быть имя узла, IP-адрес или путь к каталогу, если соединение установлено через Unix-сокет. (Случай использования пути можно отличить, поскольку он всегда будет абсолютным путем, начинающимся с / .)

sender_port integer

Номер порта Digital Q.DataBase экземпляра, , к которому подключен данный процесс-приемник журнала WAL (WAL receiver).

conninfo text

Строка подключения, используемая данным процессом-получателем журнала WAL (WAL receiver), с маскированием конфиденциальных полей.


3.12.2.7. pg_stat_recovery_prefetch #

Набор представлений pg_stat_recovery_prefetch представление будет содержать только одну строку. Столбцы wal_distance , block_distance и io_depth показывают текущие значения, а остальные столбцы содержат накопительные счетчики, которые могут быть сброшены с помощью pg_stat_reset_shared функции.

Таблица 3.12.17. Представление pg_stat_recovery_prefetch

Тип столбца

Описание

stats_reset timestamp with time zone

Время последнего сброса данных статистики

prefetch bigint

Количество блоков, для которых выполнена предвыборка из-за их отсутствия в буферном пуле

hit bigint

Количество блоков, для которых предвыборка не выполнялась, так как они уже находились в буферном пуле

skip_init bigint

Количество блоков, для которых предвыборка не выполнялась, так как они будут инициализированы нулями

skip_new bigint

Количество блоков, для которых предвыборка не выполнялась, так как они еще не существовали

skip_fpw bigint

Количество блоков, для которых предвыборка не выполнялась, так как в журнале WAL содержался образ всей страницы (FPI)

skip_rep bigint

Количество блоков, для которых предвыборка не выполнялась, так как они уже недавно запрашивались

wal_distance int

Глубина просмотра механизма предвыборки в байтах

block_distance int

Глубина просмотра механизма предвыборки в блоках

io_depth int

Количество инициированных операций предвыборки, завершение которых еще не подтверждено


3.12.2.8. pg_stat_subscription #

Таблица 3.12.18. pg_stat_subscription Представление

Тип столбца

Описание

subid oid

OID подписки

subname name

Имя подписки

worker_type text

Тип рабочего процесса подписки. Возможные значения: apply , parallel apply , и table synchronization .

pid integer

Идентификатор процесса рабочего процесса подписки

leader_pid integer

Идентификатор процесса ведущего рабочего процесса применения, если данный процесс является параллельным рабочим процессом применения; NULL, если данный процесс является ведущим рабочим процессом применения или рабочим процессом синхронизации таблиц

relid oid

OID отношения, которое синхронизирует рабочий процесс; NULL для ведущего рабочего процесса применения и параллельных рабочих процессов применения

received_lsn pg_lsn

Последнее полученное местоположение в журнале предзаписи (WAL); начальное значение если данное поле содержит 0; значение NULL для рабочих процессов параллельного применения

last_msg_send_time timestamp with time zone

Время отправки последнего сообщения, полученного от исходного процесса-отправителя журнала WAL; значение NULL для рабочих процессов параллельного применения

last_msg_receipt_time timestamp with time zone

Время приема последнего сообщения, полученного от исходного процесса-отправителя журнала WAL; значение NULL для рабочих процессов параллельного применения

latest_end_lsn pg_lsn

Последняя позиция в журнале упреждающей записи (WAL), сообщенная исходному процессу-отправителю журнала WAL; значение NULL для рабочих процессов параллельного применения

latest_end_time timestamp with time zone

Время передачи последней позиции в журнале упреждающей записи (WAL) исходному процессу-отправителю журнала WAL; значение NULL для рабочих процессов параллельного применения


3.12.2.9. pg_stat_subscription_stats #

Набор представлений pg_stat_subscription_stats данное представление содержит по одной строке для каждой подписки.

Таблица 3.12.19. Представление pg_stat_subscription_stats

Тип столбца

Описание

subid oid

OID подписки

subname name

Имя подписки

apply_error_count bigint

Количество ошибок, произошедших при применении изменений

sync_error_count bigint

Количество ошибок, произошедших в ходе начальной синхронизации таблицы

stats_reset timestamp with time zone

Время последнего сброса данных статистических показателей


3.12.2.10. pg_stat_ssl #

Набор представлений pg_stat_ssl данное представление содержит по одной строке для каждого серверного процесса (backend) или процесса-отправителя журнала WAL, отображая статистику использования SSL для конкретного соединения. Его можно объединить с pg_stat_activity или pg_stat_replication по столбцу pid для получения подробных сведений о соединении.

Таблица 3.12.20. pg_stat_ssl Представление

Тип столбца

Описание

pid integer

Идентификатор процесса серверного процесса или процесса-отправителя журнала WAL

ssl boolean

Принимает значение true, если для данного соединения используется SSL

version text

Версия используемого SSL или NULL, если SSL не используется для данного соединения

cipher text

Название используемого SSL-шифра или NULL, если SSL не используется для данного соединения

bits integer

Количество бит в используемом алгоритме шифрования или NULL если для данного соединения SSL не используется

client_dn text

Поле Distinguished Name (DN) из используемого сертификата клиента или NULL, если сертификат клиента не был предоставлен или если SSL не используется для данного соединения. Это поле усекается, если значение поля DN длиннее, чем NAMEDATALEN (64 символа в стандартной сборке).

client_serial numeric

Серийный номер клиентского сертификата или NULL, если клиентский сертификат не был предоставлен или если SSL не используется в данном соединении. Сочетание серийного номера и издателя сертификата однозначно идентифицирует сертификат (за исключением случаев, когда издатель ошибочно использует серийные номера повторно).

issuer_dn text

DN издателя клиентского сертификата или NULL, если клиентский сертификат не был предоставлен или если SSL не используется в данном соединении. Данное поле усекается аналогично client_dn .


3.12.2.11. pg_stat_gssapi #

Набор представлений pg_stat_gssapi представление содержит по одной строке для каждого серверного процесса, отображая информацию об использовании GSSAPI в данном соединении. Его можно объединить с pg_stat_activity или pg_stat_replication по столбцу pid для получения подробных сведений о соединении.

Таблица 3.12.21. Представление pg_stat_gssapi

Тип столбца

Описание

pid integer

Идентификатор процесса (PID) серверного процесса

gss_authenticated boolean

Значение True, если для данного соединения использовалась аутентификация GSSAPI

principal text

Субъект (principal), использованный для аутентификации данного соединения, или NULL, если GSSAPI не использовался для аутентификации. Данное поле усекается, если имя субъекта длиннее, чем NAMEDATALEN (64 символа в стандартной сборке).

зашифровано boolean

Имеет значение true, если в данном соединении используется шифрование GSSAPI

credentials_delegated boolean

Имеет значение true, если в данном соединении были делегированы учетные данные GSSAPI.


3.12.2.12. pg_stat_archiver #

Набор представлений pg_stat_archiver представление всегда содержит одну строку, в которой находятся данные о процессе архивации (archiver process) кластера.

Таблица 3.12.22. Представление pg_stat_archiver

Тип столбца

Описание

archived_count bigint

Число успешно заархивированных файлов WAL

last_archived_wal text

Имя последнего успешно заархивированного файла WAL

last_archived_time timestamp with time zone

Время последней успешной операции архивации

failed_count bigint

Количество неудачных попыток архивации файлов WAL

last_failed_wal text

Имя файла WAL из последней неудачной операции архивации

last_failed_time timestamp with time zone

Время последней неудачной операции архивации

stats_reset timestamp with time zone

Время последнего сброса данных статистических показателей


Обычно файлы WAL архивируются по порядку, от самых старых к самым новым, однако это не гарантируется и может не соблюдаться при особых обстоятельствах, таких как повышение роли резервного сервера (promoting a standby) или восстановление после сбоя. Следовательно, нельзя с уверенностью полагать, что все файлы более старые, чем last_archived_wal также были успешно заархивированы.

3.12.2.13. pg_stat_io #

Набор представлений pg_stat_io Представление содержит по одной строке для каждого сочетания типа серверного процесса (backend type), целевого объекта ввода-вывода (target I/O object) и контекста ввода-вывода (I/O context), отображая статистику ввода-вывода на уровне кластера. Сочетания, не имеющие смысла, опущены.

В настоящее время отслеживаются операции ввода-вывода для отношений (например, таблиц, индексов). Однако операции ввода-вывода для отношений, выполняемые в обход разделяемых буферов (например, при перемещении таблицы из одного табличного пространства в другое), в настоящее время не отслеживаются.

Таблица 3.12.23. Представление pg_stat_io

Тип столбца

Описание

backend_type text

Тип серверного процесса (например, фоновый рабочий процесс, рабочий процесс автоочистки). См. pg_stat_activity для получения дополнительной информации о backend_type ы. Некоторые backend_type ы не накапливают статистику операций ввода-вывода и не включаются в данное представление.

объект text

Целевой объект операции ввода-вывода. Возможные значения:

  • relation : постоянные отношения.

  • temp relation : временные отношения.

контекст text

Контекст операции ввода-вывода. Возможные значения:

  • normal : стандартный контекст или значение по умолчанию контекст для определенного типа операций ввода-вывода. Например, по умолчанию данные отношений считываются в разделяемые буферы и записываются из них (shared buffers). Таким образом, чтение и запись данных отношений в разделяемые буферы отслеживаются в контексте контекст normal .

  • vacuum : операции ввода-вывода, выполняемые вне разделяемых буферов при очистке (vacuum) и анализе (analyze) постоянных отношений. Очистка временных таблиц использует тот же локальный пул буферов, что и прочие операции ввода-вывода с временными таблицами; такие операции отслеживаются в контексте контекст normal .

  • bulkread : определенные масштабные операции ввода-вывода на чтение, выполняемые вне разделяемых буферов, например, последовательное сканирование (sequential scan) большой таблицы.

  • bulkwrite : некоторые крупные операции ввода-вывода при записи, выполняемые вне разделяемых буферов, такие как COPY .

reads bigint

Количество операций чтения, размер каждой из которых указан в op_bytes .

read_time double precision

Время, затраченное на операции чтения, в миллисекундах (если параметр track_io_timing включен, иначе значение равно нулю)

writes bigint

Количество операций записи, размер каждой из которых указан в op_bytes .

write_time double precision

Время, затраченное на операции записи, в миллисекундах (если параметр track_io_timing включен, иначе значение равно нулю)

writebacks bigint

Количество единиц объема данных op_bytes запись которых процесс запросил у ядра для выгрузки в постоянное хранилище.

writeback_time double precision

Время, затраченное на операции фоновой перезаписи, в миллисекундах (если параметр track_io_timing включен, иначе значение равно нулю). Этот показатель включает время нахождения запросов на запись в очереди и, потенциально, время, затраченное на фактическую запись измененных данных.

операции расширения bigint

Количество операций расширения отношений, размер каждой из которых указан в op_bytes .

extend_time double precision

Время, затраченное на операции расширения, в миллисекундах (если track_io_timing включен, иначе значение равно нулю)

op_bytes bigint

Количество байт на единицу ввода-вывода при чтении, записи или расширении.

Операции чтения, записи и расширения данных отношений выполняются в block_size единицах, производных от заданного при сборке параметра BLCKSZ , который 8192 по умолчанию.

попадания bigint

Количество случаев, когда требуемый блок был найден в разделяемом буфере.

вытеснения bigint

Количество случаев, когда блок был выгружен из разделяемого или локального буфера для его освобождения под другие нужды.

В контекст normal , здесь учитывается количество случаев вытеснения блока из буфера и его замены другим блоком. В контекст s bulkwrite , bulkread , и vacuum , здесь подсчитывается количество случаев, когда блок был вытеснен из разделяемых буферов (shared buffers) для добавления разделяемого буфера в отдельный кольцевой буфер ограниченного размера для использования в операции массового ввода-вывода.

reuses bigint

Количество случаев, когда существующий буфер в кольцевом буфере ограниченного размера вне разделяемых буферов был повторно использован в рамках операции ввода-вывода в bulkread , bulkwrite , или vacuum контекст s.

fsyncs bigint

Количество fsync вызовов. Данные показатели отслеживаются только в контекст normal .

fsync_time double precision

Время, затраченное на операции fsync, в миллисекундах (если track_io_timing включен, иначе значение равно нулю)

stats_reset timestamp with time zone

Время последнего сброса данной статистики.


Некоторые типы рабочих процессов никогда не выполняют операции ввода-вывода для определенных объектов и/или в определенных контекстах ввода-вывода. Такие строки исключаются из данного представления. Например, процесс контрольной точки (checkpointer) не обрабатывает временные таблицы, поэтому соответствующие строки для него будут отсутствовать backend_type checkpointer и объект temp relation .

Кроме того, определенные операции ввода-вывода никогда не выполняются либо конкретными типами рабочих процессов, либо для определенных объектов и/или в определенных контекстах ввода-вывода. Такие ячейки будут содержать значение NULL. Например, временные таблицы не fsync проходят через этот механизм, поэтому fsyncs будет иметь значение NULL для объект temp relation . Также процесс фоновой записи (background writer) не выполняет чтение, поэтому reads будет иметь значение NULL в строках для backend_type процесса фоновой записи (background writer) .

pg_stat_io может быть использовано для оптимизации параметров базы данных. Например:

  • Высокое значение вытеснения счетчика может указывать на необходимость увеличения объема общих буферов (shared buffers).

  • Клиентские процессы полагаются на процесс контрольной точки (checkpointer) для обеспечения фиксации данных в постоянном хранилище. Большое количество fsyncs выполненных client backend может указывать на некорректную настройку разделяемых буферов (shared buffers) или процесса контрольной точки (checkpointer). Дополнительную информацию о настройке процесса контрольной точки (checkpointer) можно найти в Раздел 3.13.5 .

  • В нормальных условиях клиентские серверные процессы должны полагаться на вспомогательные процессы, такие как процесс контрольной точки (checkpointer) и процесс фоновой записи (background writer), для максимально возможной выгрузки «грязных» данных. Большое количество операций записи, выполненных клиентскими серверными процессами, может указывать на некорректную настройку разделяемых буферов (shared buffers) или процесса контрольной точки (checkpointer). Дополнительную информацию о настройке процесса контрольной точки можно найти в Раздел 3.13.5 .

Примечание

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

3.12.2.14. pg_stat_bgwriter #

Набор представлений pg_stat_bgwriter представление всегда будет содержать одну строку, включающую данные о процессе фоновой записи (background writer) кластера.

Таблица 3.12.24. Представление pg_stat_bgwriter

Тип столбца

Описание

buffers_clean bigint

Количество буферов, записанных процессом фоновой записи (background writer)

maxwritten_clean bigint

Количество случаев, когда процесс фоновой записи (background writer) прерывал цикл очистки из-за записи слишком большого количества буферов

buffers_alloc bigint

Количество выделенных буферов

stats_reset timestamp with time zone

Время последнего сброса данных статистических показателей


3.12.2.15. pg_stat_checkpointer #

Набор представлений pg_stat_checkpointer представление всегда содержит одну строку с данными о процессе создания контрольных точек (checkpointer) кластера.

Таблица 3.12.25. pg_stat_checkpointer Представление

Тип столбца

Описание

num_timed bigint

Количество плановых контрольных точек, выполненных по истечении интервала ожидания Обратите внимание, что контрольные точки могут быть пропущены, если сервер простаивал с момента последней фиксации; данное значение учитывает как выполненные, так и пропущенные контрольные точки

num_requested bigint

Количество выполненных контрольных точек по запросу

restartpoints_timed bigint

Количество плановых точек перезапуска (restartpoints), выполненных по истечении времени ожидания или после неудачной попытки

restartpoints_req bigint

Количество запрошенных точек перезапуска

restartpoints_done bigint

Количество выполненных точек перезапуска

write_time double precision

Суммарное время, затраченное на этап обработки контрольных точек и точек перезапуска, во время которого файлы записываются на диск, в миллисекундах

sync_time double precision

Суммарное время, затраченное на этап обработки контрольных точек и точек перезапуска, во время которого файлы синхронизируются с диском, в миллисекундах

buffers_written bigint

Количество буферов, записанных при выполнении контрольных точек и точек перезапуска

stats_reset timestamp with time zone

Время последнего сброса данных статистических показателей


3.12.2.16. pg_stat_wal #

Набор представлений pg_stat_wal представление всегда содержит одну строку, в которой находятся данные об активности журнала WAL кластера.

Таблица 3.12.26. pg_stat_wal Представление

Тип столбца

Описание

wal_records bigint

Общее количество сгенерированных записей журнала WAL

wal_fpi bigint

Общее количество сгенерированных полных образов страниц журнала WAL

wal_bytes numeric

Общий объем сгенерированного журнала WAL в байтах

wal_buffers_full bigint

Количество операций записи данных журнала WAL на диск по причине переполнения буферов WAL

wal_write bigint

Количество операций записи буферов журнала WAL на диск посредством XLogWrite запроса. См. Раздел 3.13.5 для получения дополнительной информации о внутренней функции журнала WAL XLogWrite .

wal_sync bigint

Количество операций синхронизации файлов WAL с диском посредством issue_xlog_fsync запроса (если fsync имеет значение вкл и wal_sync_method имеет значение либо fdatasync , fsync или fsync_writethrough , в противном случае — ноль). См. Раздел 3.13.5 для получения дополнительной информации о внутренней функции журнала WAL issue_xlog_fsync .

wal_write_time double precision

Общее время, затраченное на запись буферов журнала WAL на диск посредством XLogWrite запрос (в миллисекундах) (если track_wal_io_timing включен, в противном случае — ноль). Сюда входит время синхронизации в случаях, когда wal_sync_method имеет значение либо open_datasync или open_sync .

wal_sync_time double precision

Суммарное время, затраченное на синхронизацию файлов WAL с диском с помощью issue_xlog_fsync запрос (в миллисекундах) (если track_wal_io_timing включен, fsync имеет значение вкл , и wal_sync_method имеет значение либо fdatasync , fsync или fsync_writethrough , в противном случае — ноль).

stats_reset timestamp with time zone

Время последнего сброса данных статистических показателей


3.12.2.17. pg_stat_database #

Набор представлений pg_stat_database представление содержит по одной строке для каждой базы данных в кластере и одну для общих объектов, отображая статистику на уровне всей базы данных.

Таблица 3.12.27. Представление pg_stat_database

Тип столбца

Описание

datid oid

OID данной базы данных или 0 для объектов, относящихся к общим relation

datname name

Имя данной базы данных или NULL для общих объектов.

numbackends integer

Количество серверных процессов, подключенных к данной базе данных в настоящий момент, или NULL для общих объектов. Это единственный столбец в данном представлении, возвращающий значение, которое отражает текущее состояние; все остальные столбцы содержат накопленные значения с момента последнего сброса статистики.

xact_commit bigint

Количество транзакций в данной базе данных, которые были committed

xact_rollback bigint

Количество транзакций в данной базе данных, которые были rolled back

blks_read bigint

Число блоков диска, прочитанных в данной базе данных

blks_hit bigint

Число случаев, когда блоки диска были обнаружены в буферном кэше, в результате чего чтение не потребовалось (учитываются только попадания в буферный кэш PostgreSQL, без учета кэша файловой системы операционной системы)

tup_returned bigint

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

tup_fetched bigint

Число актуальных строк, извлеченных при сканировании индексов в данной базе данных

tup_inserted bigint

Число строк, вставленных запросами в данной базе данных

tup_updated bigint

Число строк, обновленных запросами в данной базе данных

tup_deleted bigint

Число строк, удаленных запросами в данной базе данных

конфликты bigint

Число запросов, отмененных из-за конфликтов с процессом восстановления в данной базе данных. (Конфликты возникают только на резервных серверах; см. pg_stat_database_conflicts для получения подробных сведений.)

temp_files bigint

Число временных файлов, созданных запросами в данной базе данных. Учитываются все временные файлы, независимо от причины, по которой временный файл был создан (например, для сортировки или хеширования), независимо от значения log_temp_files параметра.

temp_bytes bigint

Общий объем данных, записанных во временные файлы при выполнении запросов в данной базе данных. Учитываются все временные файлы независимо от причины, по которой был создан временный файл, и независимо от значения log_temp_files параметра.

deadlocks bigint

Количество взаимных блокировок, обнаруженных в данной базе данных

checksum_failures bigint

Количество ошибок контрольных сумм страниц данных, обнаруженных в этой базе данных (или в общем объекте), или NULL, если контрольные суммы не используются.

checksum_last_failure timestamp with time zone

Время обнаружения последней ошибки контрольной суммы страницы данных в этой базе данных (или в общем объекте), или NULL, если контрольные суммы не используются.

blk_read_time double precision

Время, затраченное обслуживающими процессами (backends) на чтение блоков файлов данных в данной базе данных, в миллисекундах (если параметр track_io_timing включен, включен, иначе — ноль)

blk_write_time double precision

Время, затраченное обслуживающими процессами (backends) на запись блоков файлов данных в данной базе данных, в миллисекундах (если параметр track_io_timing включен, включен, иначе — ноль)

session_time double precision

Время, затраченное сеансами в данной базе данных, в миллисекундах (обратите внимание, что статистика обновляется только при изменении состояния сеанса, поэтому, если сеансы находились в режиме ожидания в течение длительного времени, это время простоя не будет учтено)

active_time double precision

Время, затраченное на выполнение SQL-операторов в данной базе данных, в миллисекундах (это соответствует состояниям active и вызов функции fastpath в pg_stat_activity )

idle_in_transaction_time double precision

Время простоя внутри транзакции в данной базе данных, в миллисекундах (это соответствует состояниям idle in transaction и idle in transaction (aborted) в pg_stat_activity )

сеансы bigint

Общее количество сеансов, установленных с данной базой данных

sessions_abandoned bigint

Количество сеансов связи с данной базой данных, которые были завершены по причине потери соединения с клиентом

sessions_fatal bigint

Количество сеансов связи с данной базой данных, которые были завершены из-за критических ошибок (fatal errors)

sessions_killed bigint

Количество сеансов связи с данной базой данных, которые были завершены в результате вмешательства оператора

stats_reset timestamp with time zone

Время последнего сброса данных статистических показателей


3.12.2.18. pg_stat_database_conflicts #

Набор представлений pg_stat_database_conflicts представление содержит по одной строке для каждой базы данных, отображая статистику в масштабе базы данных об отменах запросов, произошедших из-за конфликтов с восстановлением на резервных серверах. Данное представление содержит информацию только о резервных серверах, поскольку на основных серверах конфликты не возникают.

Таблица 3.12.28. pg_stat_database_conflicts Представление

Тип столбца

Описание

datid oid

OID базы данных

datname name

Имя данной базы данных

confl_tablespace bigint

Количество запросов в этой базе данных, отмененных по причине удаления табличных пространств

confl_lock bigint

Количество запросов в этой базе данных, отмененных по причине истечения времени ожидания блокировки

confl_snapshot bigint

Количество запросов в этой базе данных, отмененных по причине устаревших снимков данных

confl_bufferpin bigint

Количество запросов в этой базе данных, отмененных по причине закрепленных буферов

confl_deadlock bigint

Количество запросов в этой базе данных, отмененных по причине deadlocks

confl_active_logicalslot bigint

Количество случаев использования логических слотов в этой базе данных, которые были отменены из-за устаревших снимков данных или слишком низкого значения wal_level на основном сервере


3.12.2.19. pg_stat_all_tables #

Набор представлений pg_stat_all_tables представление содержит по одной строке для каждой таблицы в текущей базе данных (включая TOAST-таблицы) и отображает статистику обращений к конкретной таблице. pg_stat_user_tables и pg_stat_sys_tables представления содержат ту же информацию, но отфильтрованы для отображения только пользовательских и системных таблиц соответственно.

Таблица 3.12.29. Представление pg_stat_all_tables

Тип столбца

Описание

relid oid

OID таблицы

schemaname name

Имя схемы, к которой относится данная таблица

relname name

Имя данной таблицы

seq_scan bigint

Количество последовательных сканирований (sequential scans), инициированных для данной таблицы

last_seq_scan timestamp with time zone

Время последнего последовательного сканирования данной таблицы на основе время завершения последней транзакции

seq_tup_read bigint

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

idx_scan bigint

Количество операций сканирования индексов, инициированных для данной таблицы

last_idx_scan timestamp with time zone

Время последнего сканирования индексов для данной таблицы на основе время завершения последней транзакции

idx_tup_fetch bigint

Количество актуальных строк, извлеченных при сканировании индексов

n_tup_ins bigint

Общее количество вставленных строк

n_tup_upd bigint

Общее количество обновленных строк. (Сюда входят обновления строк, учтенные в n_tup_hot_upd и n_tup_newpage_upd , и оставшиеся не HOT обновления.)

n_tup_del bigint

Общее количество удаленных строк

n_tup_hot_upd bigint

Количество строк, обновленных по технологии HOT . Это обновления, при которых не требуется создание последующих версий в индексах.

n_tup_newpage_upd bigint

Количество обновленных строк, для которых последующая версия перемещается на новую страницу кучи (heap page), оставляя при этом исходную версию с t_ctid полем указывающим на другую страницу кучи. Такие обновления всегда не являются HOT HOT-обновлениями (non-HOT updates).

n_live_tup bigint

Оценочное количество актуальных (live) строк

n_dead_tup bigint

Оценочное количество «мертвых» (dead) строк

n_mod_since_analyze bigint

Оценочное количество строк, измененных с момента последнего сбора статистики (ANALYZE) для данной таблицы

n_ins_since_vacuum bigint

Оценочное количество строк, вставленных с момента последней очистки (VACUUM) данной таблицы

last_vacuum timestamp with time zone

Время последнего выполнения ручной очистки (VACUUM) данной таблицы (не считая VACUUM FULL )

last_autovacuum timestamp with time zone

Время последней очистки данной таблицы процессом автоочистки daemon

last_analyze timestamp with time zone

Время последнего ручного сбора статистики (ANALYZE) для данной таблицы

last_autoanalyze timestamp with time zone

Время последнего сбора статистики для данной таблицы процессом автоочистки (autovacuum) daemon

vacuum_count bigint

Количество операций очистки (vacuum), выполненных для данной таблицы вручную (не считая VACUUM FULL )

autovacuum_count bigint

Количество операций очистки, выполненных для данной таблицы процессом автоочистки (autovacuum) daemon

analyze_count bigint

Количество операций сбора статистики (analyze), выполненных для данной таблицы вручную

autoanalyze_count bigint

Количество операций сбора статистики, выполненных для данной таблицы процессом автоочистки (autovacuum) daemon


3.12.2.20. pg_stat_all_indexes #

Набор представлений pg_stat_all_indexes представление содержит по одной строке для каждого индекса в текущей базе данных, с данными статистики обращений к конкретному индексу. Это pg_stat_user_indexes и pg_stat_sys_indexes представления содержат ту же информацию, но отфильтрованы для отображения только пользовательских и системных индексов соответственно.

Таблица 3.12.30. Представление pg_stat_all_indexes

Тип столбца

Описание

relid oid

OID таблицы, к которой относится данный индекс

indexrelid oid

OID данного индекса

schemaname name

Имя схемы, в которой расположен данный индекс

relname name

Имя таблицы, к которой относится данный индекс

indexrelname name

Имя данного индекса

idx_scan bigint

Количество операций сканирования индексов, инициированных для данного индекса

last_idx_scan timestamp with time zone

Время последнего сканирования данного индекса на основе время завершения последней транзакции

idx_tup_read bigint

Количество записей индекса, возвращенных при сканировании данного индекса

idx_tup_fetch bigint

Количество актуальных («живых») строк таблицы, извлеченных посредством простого сканирования данного индекса индекс


Индексы могут использоваться при простом сканировании индексов, «битовая карта» сканировании индексов, а также оптимизатором. При сканировании по битовой карте результаты нескольких индексов могут объединяться по правилам AND или OR, поэтому при использовании такого сканирования сложно сопоставить выборку отдельных строк таблицы с конкретными индексами. Следовательно, сканирование по битовой карте увеличивает pg_stat_all_indexes . idx_tup_read значения счетчиков для используемых индексов и увеличивает pg_stat_all_tables . idx_tup_fetch счетчик для таблицы, но это не влияет на pg_stat_all_indexes . idx_tup_fetch . Оптимизатор также обращается к индексам для проверки предоставленных констант, значения которых выходят за пределы диапазона, зафиксированного в статистике оптимизатора, так как эта статистика может быть устаревшей.

Примечание

Данные idx_tup_read и idx_tup_fetch показатели счетчиков могут различаться даже без использования сканирования по битовой карте, поскольку idx_tup_read подсчитывает записи, извлеченные из индекса, в то время как idx_tup_fetch подсчитывает актуальные («живые») строки, извлеченные из таблицы. Последнее значение будет меньше, если с помощью индекса извлекаются «мертвые» или еще не зафиксированные строки, либо если обращения к основной таблице исключаются за счет сканирования только индекса (index-only scan).

Примечание

Запросы, использующие определенные SQL конструкции для поиска строк, соответствующих любому значению из списка или массива нескольких скалярных значений (см. Раздел 2.6.25 ) выполняют многократное «примитивное» сканирование индексов (вплоть до одного примитивного сканирования на каждое скалярное значение) в процессе выполнения запроса. Каждое внутреннее примитивное сканирование индексов увеличивает значение pg_stat_all_indexes . idx_scan , поэтому количество сканирований индексов может значительно превышать общее количество выполнений узла исполнителя для сканирования индексов.

3.12.2.21. pg_statio_all_tables #

Набор представлений pg_statio_all_tables представление содержит по одной строке для каждой таблицы в текущей базе данных (включая таблицы TOAST), отражая статистику ввода-вывода для конкретной таблицы. Данное pg_statio_user_tables и pg_statio_sys_tables представления содержат ту же информацию, но отфильтрованы для отображения только пользовательских и системных таблиц соответственно.

Таблица 3.12.31. pg_statio_all_tables Представление

Тип столбца

Описание

relid oid

OID таблицы

schemaname name

Имя схемы, к которой относится данная таблица

relname name

Имя данной таблицы

heap_blks_read bigint

Количество дисковых блоков, прочитанных из этой таблицы

heap_blks_hit bigint

Количество попаданий в буфер для этой таблицы

idx_blks_read bigint

Количество дисковых блоков, прочитанных из всех индексов этой таблицы

idx_blks_hit bigint

Количество попаданий в буфер для всех индексов этой таблицы

toast_blks_read bigint

Количество дисковых блоков, прочитанных из TOAST-таблицы данной таблицы (при её наличии)

toast_blks_hit bigint

Число попаданий в буферный кэш для TOAST-таблицы данной таблицы (при её наличии)

tidx_blks_read bigint

Число дисковых блоков, прочитанных из индексов TOAST-таблицы данной таблицы (при их наличии)

tidx_blks_hit bigint

Число попаданий в буферный кэш для индексов TOAST-таблицы данной таблицы (при их наличии)


3.12.2.22. pg_statio_all_indexes #

Набор представлений pg_statio_all_indexes представление будет содержать по одной строке для каждого индекса в текущей базе данных, отображая статистику ввода-вывода для этого конкретного индекса. Данное pg_statio_user_indexes и pg_statio_sys_indexes представления содержат ту же информацию, но отфильтрованы для отображения только пользовательских и системных индексов соответственно.

Таблица 3.12.32. pg_statio_all_indexes Представление

Тип столбца

Описание

relid oid

OID таблицы, к которой относится данный индекс

indexrelid oid

OID данного индекса

schemaname name

Имя схемы, в которой расположен данный индекс

relname name

Имя таблицы, к которой относится данный индекс

indexrelname name

Имя данного индекса

idx_blks_read bigint

Число дисковых блоков, прочитанных из данного индекса

idx_blks_hit bigint

Число попаданий в буферный кэш для данного индекса


3.12.2.23. pg_statio_all_sequences #

Набор представлений pg_statio_all_sequences представление будет содержать по одной строке для каждой последовательности в текущей базе данных, отображая статистику ввода-вывода для этой конкретной последовательности.

Таблица 3.12.33. pg_statio_all_sequences Представление

Тип столбца

Описание

relid oid

OID последовательности

schemaname name

Имя схемы, в которой находится данная последовательность

relname name

Имя данной последовательности

blks_read bigint

Число дисковых блоков, прочитанных из данной последовательности

blks_hit bigint

Число попаданий в буферный кэш для данной последовательности


3.12.2.24. pg_stat_user_functions #

Набор представлений pg_stat_user_functions представление будет содержать по одной строке для каждой отслеживаемой функции, отображая статистику выполнения этой функции. Данное track_functions параметр определяет, какие именно функции подлежат отслеживанию.

Таблица 3.12.34. pg_stat_user_functions Представление

Тип столбца

Описание

funcid oid

OID функции

schemaname name

Имя схемы, к которой относится данная функция

funcname name

Имя данной функции

calls bigint

Количество вызовов данной функции

total_time double precision

Суммарное время, затраченное в этой функции и во всех остальных функциях, вызванных из неё (в миллисекундах)

self_time double precision

Суммарное время, затраченное непосредственно в самой функции, без учёта других функций, вызванных из неё (в миллисекундах)


3.12.2.25. pg_stat_slru #

Digital Q.DataBase обращается к определённой информации на диске посредством SLRU ( simple least-recently-used ) кэши. Представление pg_stat_slru содержит по одной строке для каждого отслеживаемого кэша SLRU и отображает статистику доступа к кэшированным страницам.

Для каждого SLRU кэша, входящего в состав ядра сервера; существует параметр конфигурации, управляющий его размером, к которому добавляется суффикс _buffers в конце имени.

Таблица 3.12.35. pg_stat_slru Представление

Тип столбца

Описание

name text

Имя механизма SLRU

blks_zeroed bigint

Количество блоков, обнуленных при инициализации

blks_hit bigint

Количество случаев обнаружения блоков диска непосредственно в SLRU, благодаря чему чтение не требовалось (учитываются только попадания в SLRU, без учета кэша файловой системы операционной системы)

blks_read bigint

Количество дисковых блоков, прочитанных для данного SLRU

blks_written bigint

Количество дисковых блоков, записанных для данного SLRU

blks_exists bigint

Количество блоков, проверенных на наличие для данного SLRU

flushes bigint

Количество сбросов измененных («грязных») данных для данного SLRU

truncates bigint

Количество операций обрезания для данного SLRU

stats_reset timestamp with time zone

Время последнего сброса данных статистических показателей


3.12.2.26. Функции для работы со статистикой #

Дополнительные способы анализа статистики можно реализовать с помощью запросов, использующих те же базовые функции доступа к статистике, что и стандартные представления, описанные выше. Для получения таких сведений, как имена функций, обратитесь к определениям стандартных представлений. (Например, в psql можно выполнить команду \d+ pg_stat_activity .) Функции доступа к статистике по базам данных принимают OID базы данных в качестве аргумента для идентификации базы данных, по которой формируется отчет. Функции для таблиц и индексов принимают OID таблицы или индекса соответственно. Функции для получения статистики по отдельным функциям принимают OID функции. Обратите внимание, что с помощью этих функций можно просмотреть только таблицы, индексы и функции, находящиеся в текущей базе данных.

Дополнительные функции, связанные с системой сбора кумулятивной статистики, перечислены в Таблица 3.12.36 .

Таблица 3.12.36. Дополнительные функции статистики

Функция

Описание

pg_backend_pid () → integer

Возвращает идентификатор процесса сервера, обслуживающего текущий сеанс.

pg_stat_get_activity ( integer ) → setof record

Возвращает запись с информацией о серверном процессе с указанным идентификатором процесса или по одной записи для каждого активного серверного процесса в системе, если NULL параметр указан. Возвращаемые поля представляют собой подмножество записей из pg_stat_activity представления.

pg_stat_get_snapshot_timestamp () → timestamp with time zone

Возвращает метку времени текущего снимка статистики или NULL, если снимок статистики еще не был создан. Снимок создается при первом обращении к кумулятивной статистике в рамках транзакции, если stats_fetch_consistency установлен в значение snapshot

pg_stat_get_xact_blocks_fetched ( oid ) → bigint

Возвращает количество запросов на чтение блоков таблицы или индекса в текущей транзакции. Данное число за вычетом pg_stat_get_xact_blocks_hit определяет количество системных read() вызовов; фактическое количество физических операций чтения обычно ниже из-за буферизации на уровне ядра.

pg_stat_get_xact_blocks_hit ( oid ) → bigint

Возвращает количество запросов на чтение блоков таблицы или индекса в текущей транзакции, обнаруженных в кэше (без выполнения системных read() вызовов).

pg_stat_clear_snapshot () → void

Сбрасывает текущий снимок статистики или кэшированную информацию.

pg_stat_reset () → void

Обнуляет все счетчики статистики для текущей базы данных.

По умолчанию выполнение этой функции разрешено только суперпользователям, но другим пользователям может быть предоставлено право EXECUTE для её запуска.

pg_stat_reset_shared ( [ target text DEFAULT NULL ] ) → void

Обнуляет некоторые счетчики статистики на уровне кластера в зависимости от указанного аргумента. target может принимать значения:

  • archiver : обнуление всех счетчиков, отображаемых в представлении pg_stat_archiver представления.

  • bgwriter : обнуление всех счетчиков, отображаемых в представлении pg_stat_bgwriter представления.

  • checkpointer : обнуление всех счетчиков, отображаемых в представлении pg_stat_checkpointer представления.

  • io : обнуление всех счетчиков, отображаемых в представлении pg_stat_io представления.

  • recovery_prefetch : обнуление всех счетчиков, отображаемых в представлении pg_stat_recovery_prefetch представления.

  • slru : обнуление всех счетчиков, отображаемых в представлении pg_stat_slru представления.

  • журнал WAL : обнуление всех счетчиков, отображаемых в представлении pg_stat_wal представления.

  • NULL или не указано: обнуляются все счетчики из представлений, перечисленных выше.

По умолчанию выполнение этой функции разрешено только суперпользователям, но другим пользователям может быть предоставлено право EXECUTE для её запуска.

pg_stat_reset_single_table_counters ( oid ) → void

Сбрасывает статистику для отдельной таблицы или индекса в текущей базе данных или общих для всех баз данных в кластере, до нуля.

По умолчанию выполнение этой функции разрешено только суперпользователям, но другим пользователям может быть предоставлено право EXECUTE для её запуска.

pg_stat_reset_single_function_counters ( oid ) → void

Сбрасывает статистику для отдельной функции в текущей базе данных до нуля.

По умолчанию выполнение этой функции разрешено только суперпользователям, но другим пользователям может быть предоставлено право EXECUTE для её запуска.

pg_stat_reset_slru ( [ target text DEFAULT NULL ] ) → void

Сбрасывает статистику до нуля для одного кэша SLRU или для всех SLRU в кластере. Если target имеет значение NULL или не указан, все счетчики, отображаемые в представлении pg_stat_slru представлении для всех кэшей SLRU, сбрасываются. Аргумент может принимать одно из следующих значений: commit_timestamp , multixact_member , multixact_offset , notify , serializable , subtransaction , или transaction для сброса счетчиков только для этой записи. Если аргумент имеет значение other (или, по сути, любое неизвестное имя), то обнуляются счетчики всех остальных кэшей SLRU, таких как кэши, определяемые расширениями.

По умолчанию выполнение этой функции разрешено только суперпользователям, но другим пользователям может быть предоставлено право EXECUTE для её запуска.

pg_stat_reset_replication_slot ( text ) → void

Сбрасывает статистику слота репликации, заданного аргументом. Если в качестве аргумента передано NULL , сбрасывается статистика для всех слотов репликации.

По умолчанию выполнение этой функции разрешено только суперпользователям, но другим пользователям может быть предоставлено право EXECUTE для её запуска.

pg_stat_reset_subscription_stats ( oid ) → void

Обнуляет статистику для одной подписки, отображаемой в представлении pg_stat_subscription_stats . Если указано в качестве аргумента передано NULL , сбрасывается статистика для всех подписок.

По умолчанию выполнение этой функции разрешено только суперпользователям, но другим пользователям может быть предоставлено право EXECUTE для её запуска.


Предупреждение

Вызов функции pg_stat_reset() также сбрасывает счетчики, используемые автоочисткой для определения момента запуска операций vacuum или analyze. Сброс этих счетчиков может привести к тому, что автоочистка не выполнит необходимые операции, что чревато такими проблемами, как раздувание таблиц (table bloat) или устаревание статистики таблиц. В масштабе всей базы данных ANALYZE рекомендуется выполнить сразу после сброса статистики.

pg_stat_get_activity , базовая функция pg_stat_activity , возвращает набор записей, содержащих всю доступную информацию о каждом процессе бэкенда (backend process). В некоторых случаях целесообразно получить только подмножество этих данных. В таких случаях может применяться другой набор функций доступа к статистике отдельных серверных процессов; они приведены в Таблица 3.12.37 . Эти функции доступа используют идентификатор серверного процесса (backend ID), представляющий собой небольшое целое число (>= 0), уникальное среди всех активных сессий. Идентификатор сессии может быть использован повторно сразу после ее завершения. Идентификатор серверного процесса используется, помимо прочего, для определения временной схемы сессии, если таковая имеется. Функция pg_stat_get_backend_idset предоставляет удобный способ получения списка идентификаторов всех активных серверных процессов для вызова данных функций. Например, для вывода PID и текущих запросов всех серверных процессов:

SELECT pg_stat_get_backend_pid(backendid) AS pid,
       pg_stat_get_backend_activity(backendid) AS query
FROM pg_stat_get_backend_idset() AS backendid;

Таблица 3.12.37. Функции статистики отдельных серверных процессов

Функция

Описание

pg_stat_get_backend_activity ( integer ) → text

Возвращает текст последнего запроса данного серверного процесса.

pg_stat_get_backend_activity_start ( integer ) → timestamp with time zone

Возвращает время начала последнего запроса обслуживающего процесса (backend).

pg_stat_get_backend_client_addr ( integer ) → inet

Возвращает IP-адрес клиента, подключенного к данному обслуживающему процессу.

pg_stat_get_backend_client_port ( integer ) → integer

Возвращает номер TCP-порта, используемый клиентом для соединения.

pg_stat_get_backend_dbid ( integer ) → oid

Возвращает OID базы данных, к которой подключен данный обслуживающий процесс.

pg_stat_get_backend_idset () → setof integer

Возвращает набор идентификаторов всех активных в данный момент обслуживающих процессов.

pg_stat_get_backend_pid ( integer ) → integer

Возвращает идентификатор процесса данного обслуживающего процесса.

pg_stat_get_backend_start ( integer ) → timestamp with time zone

Возвращает время запуска данного процесса.

pg_stat_get_backend_subxact ( integer ) → record

Возвращает запись, содержащую сведения о подтранзакциях обслуживающего процесса с указанным идентификатором. Возвращаемые поля: subxact_count , которое содержит количество подтранзакций в кэше подтранзакций обслуживающего процесса, и subxact_overflow , которое указывает, переполнен ли кэш подтранзакций данного обслуживающего процесса.

pg_stat_get_backend_userid ( integer ) → oid

Возвращает OID пользователя, авторизованного в данном обслуживающем процессе.

pg_stat_get_backend_wait_event ( integer ) → text

Возвращает имя события ожидания, если данный процесс обслуживания (backend) в настоящий момент находится в состоянии ожидания, в противном случае — NULL. См. Таблица 3.12.5 по Таблица 3.12.13 .

pg_stat_get_backend_wait_event_type ( integer ) → text

Возвращает имя типа события ожидания, если данный процесс обслуживания (backend) в настоящий момент находится в состоянии ожидания, в противном случае — NULL. См. Таблица 3.12.4 для получения подробных сведений.

pg_stat_get_backend_xact_start ( integer ) → timestamp with time zone

Возвращает время начала текущей транзакции процесса обслуживания (backend).


Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению