18.9. Статистика времени выполнения #
18.9.1. Накопительная статистика по запросам и индексам #
Эти параметры управляют системой накопительной статистики на уровне сервера. Когда сбор статистики включён, собираемые данные можно просмотреть в семействе системных представлений pg_stat
и pg_statio
. За дополнительными сведениями обратитесь к Главе 26.
track_activities
(boolean
) #Включает сбор сведений о текущих командах, выполняющихся во всех сеансах (в частности, отслеживается идентификатор и время запуска команды). По умолчанию этот параметр включён. Заметьте, что даже когда сбор ведётся, собранная информация доступна не для всех пользователей, а только для суперпользователей и пользователей, включённых в роль
pg_read_all_stats
. Также пользователям доступна информация о командах в их сеансах (включая сеансы ролей, в которые эти пользователи включены). Поэтому это не должно повлечь риски, связанные с безопасностью. Изменить этот параметр могут только суперпользователи и пользователи с соответствующим правомSET
.track_activity_query_size
(integer
) #Задаёт объём памяти, резервируемой для хранения текста выполняемой в данной момент команды в каждом активном сеансе, для поля
pg_stat_activity
.query
. Если это значение задаётся без единиц измерения, оно считается заданным в байтах. Значение по умолчанию — 1024 байта. Задать этот параметр можно только при запуске сервера.track_counts
(boolean
) #Включает сбор статистики активности в базе данных. Этот параметр по умолчанию включён, так как собранная информация требуется демону автоочистки. Изменить этот параметр могут только суперпользователи и пользователи с соответствующим правом
SET
.track_io_timing
(boolean
) #Включает замер времени операций ввода/вывода. Этот параметр по умолчанию отключён, так как для данного замера требуется постоянно запрашивать текущее время у операционной системы, что может значительно замедлить работу на некоторых платформах. Для оценивания издержек замера времени на вашей платформе можно воспользоваться утилитой pg_test_timing. Статистику ввода/вывода можно получить через представление
pg_stat_database
,pg_stat_io
, в выводе EXPLAIN (когда используется параметрBUFFERS
), в выводе VACUUM (когда используется параметрVERBOSE
), от процесса автоочистки, выполняющего операции очистки и сбора статистики, когда установлен параметр log_autovacuum_min_duration, и через представление pg_stat_statements. Изменить этот параметр могут только суперпользователи и пользователи с соответствующим правомSET
.track_wal_io_timing
(boolean
) #Включает замер времени операций ввода/вывода WAL. Этот параметр по умолчанию отключён, так как для данного замера требуется постоянно запрашивать текущее время у операционной системы, что может значительно замедлить работу на некоторых платформах. Для оценивания издержек замера времени на вашей платформе можно воспользоваться утилитой pg_test_timing. Статистику ввода/вывода можно получить через представление
pg_stat_wal
. Изменить этот параметр могут только суперпользователи и пользователи с соответствующим правомSET
.track_functions
(enum
) #Включает подсчёт вызовов функций и времени их выполнения. Значение
pl
включает отслеживание только функций на процедурном языке, аall
— также функций на языках SQL и C. Значение по умолчанию —none
, то есть сбор статистики по функциям отключён. Изменить этот параметр могут только суперпользователи и пользователи с соответствующим правомSET
.Примечание
Функции на языке SQL, достаточно простые для «внедрения» в вызывающий запрос, отслеживаться не будут вне зависимости от этого параметра.
stats_fetch_consistency
(enum
) #Определяет поведение при многократном обращении к накопительной статистике в рамках транзакции. Когда задано значение
none
, счётчики при каждом обращении извлекаются из общей памяти. Когда задано значениеcache
, при первом обращении кешируется статистика по конкретному объекту; сбрасывается она при завершении транзакции или при вызовеpg_stat_clear_snapshot()
. Когда задано значениеsnapshot
, при первом обращении кешируется вся статистика, имеющаяся в текущей базе данных; сбрасывается она также при завершении транзакции или при вызовеpg_stat_clear_snapshot()
. При изменении этого параметра в транзакции сбрасывается снимок статистики. Значение по умолчанию —cache
.Примечание
Вариант
none
больше подходит для систем мониторинга. Он наиболее эффективен, если происходит только одно обращение к значениям. Вариантcache
гарантирует, что при повторном обращении будут получены те же значения; это нужно для запросов, содержащих, например, замкнутые соединения. Вариантsnapshot
может быть полезен при интерактивном просмотре статистики, но с ним связаны дополнительные издержки, особенно если в базе много объектов.
18.9.2. Мониторинг статистики #
compute_query_id
(enum
) #Включает вычисление идентификатора запроса в ядре. Идентификаторы запроса могут отображаться в представлении
pg_stat_activity
в выводеEXPLAIN
или записываться в журнал, при заданным соответствующим образом параметре log_line_prefix. Идентификаторы запросов также должны вычисляться для расширения pg_stat_statements. Обратите внимание, что в качестве альтернативы можно использовать внешний модуль, если метод вычисления идентификатора запроса в ядре является неприемлемым. Это вычисление в ядре нужно полностью отключить. Допустимые значения:off
(всегда отключено);on
(всегда включено);auto
, которое позволяет таким модулям, как pg_stat_statements, автоматически включить данное вычисление;regress
, которое действует так же, какauto
, но идентификатор запроса не показывается в выводе командыEXPLAIN
, что облегчает автоматическое регрессионное тестирование. По умолчанию значение этого параметра —auto
.Примечание
Чтобы для запроса гарантированно вычислялся и отображался только один идентификатор, вычисляющие его расширения должны выдавать ошибку, если идентификатор запроса уже был вычислен.
log_statement_stats
(boolean
)log_parser_stats
(boolean
)log_planner_stats
(boolean
)log_executor_stats
(boolean
) #Эти параметры включают вывод статистики по производительности соответствующего модуля в протокол работы сервера. Это грубый инструмент профилирования, похожий на функцию
getrusage()
в операционной системе. Параметрlog_statement_stats
включает вывод общей статистики по операторам, тогда как другие управляют статистикой по модулям (разбор, планирование, выполнение). Включитьlog_statement_stats
одновременно с параметрами, управляющими модулями, нельзя. По умолчанию все эти параметры отключены. Изменить эти параметры могут только суперпользователи и пользователи с соответствующим правомSET
.
37.66. views
#
The view views
contains all views defined in the current database. Only those views are shown that the current user has access to (by way of being the owner or having some privilege).
Table 37.64. views
Columns
Column Type Description |
---|
Name of the database that contains the view (always the current database) |
Name of the schema that contains the view |
Name of the view |
Query expression defining the view (null if the view is not owned by a currently enabled role) |
|
|
|
|
|
|