pg_store_plans
Описание
Модуль pg_store_plans предоставляет средства для отслеживания статистики плана выполнения всех операторов SQL, выполняемых сервером.
Этот модуль необходимо загрузить, добавив pg_store_plans в параметр shared_preload_libraries файла qhb.conf, поскольку ему требуется дополнительная разделяемая память. Это означает, что для добавления или удаления этого модуля понадобится перезагрузка сервера. pg_store_plans требует, чтобы переменная GUC compute_query_id имела значение on или auto. Если установлено значение no, pg_store_plans автоматически отключается.
Установка
Модуль для отслеживания статистики плана выполнения операторов SQL для QHB поставляется в виде пакета qhb-1.5.2-pg-store-plans.
Подключите репозиторий пакетов QHB и установите пакет расширения для выбранной платформы со страницы загрузки.
Представление pg_store_plans
Статистика, собранная модулем, доступна через системное представление pg_store_plans. Это представление содержит по одной строке для каждого отдельного набора идентификаторов баз данных, идентификаторов пользователей и идентификаторов запросов. Столбцы представления описаны в Таблице 1.
Таблица 1. Столбцы pg_store_plans
Столбец Тип |
||
---|---|---|
Описание |
||
userid oid (ссылается на pg_authid.oid) | ||
OID пользователя, выполнившего оператор | ||
dbid oid (ссылается на pg_database.oid) | ||
OID базы данных, в которой был выполнен оператор | ||
queryid bigint | ||
Идентификатор запроса, сгенерированный ядром. Если для параметра calculate_query_id установлено значение no, pg_store_plan автоматически отключается. Его можно использовать в качестве ключа соединения с pg_stat_statements. | ||
planid bigint | ||
Хеш-код плана, вычисленный из нормализованного представления плана. | ||
plan text | ||
Текст репрезентативного плана. Формат задается параметром конфигурации pg_store_plans.plan_format. | ||
calls bigint | ||
Сколько раз выполнялся оператор | ||
total_time double precision | ||
Общее время, потраченное оператором, использующим план, в миллисекундах | ||
min_time double precision | ||
Минимальное время, потраченное оператором, использующим план, в миллисекундах | ||
max_time double precision | ||
Максимальное время, потраченное оператором, использующим план, в миллисекундах | ||
mean_time double precision | ||
Среднее время время, потраченное оператором, использующим план, в миллисекундах | ||
stddev_time double precision | ||
Сумма отклонений времени, потраченное оператором, использующим план, в миллисекундах | ||
rows bigint | ||
Общее количество строк, извлеченных или затронутых оператором, использующим план | ||
shared_blks_hit bigint | ||
Общее количество попаданий в кэш разделяемых блоков оператором, использующим план | ||
shared_blks_read bigint | ||
Общее количество разделяемых блоков, прочитанных оператором, использующим план | ||
shared_blks_dirtied bigint | ||
Общее количество разделяемых блоков, «загрязненных» оператором, использующим план | ||
shared_blks_written bigint | ||
Общее количество разделяемых блоков, записанных оператором, использующим план | ||
local_blks_hit bigint | ||
Общее количество попаданий в кэш локальных блоков оператором, использующим план | ||
local_blks_read bigint | ||
Общее количество локальных блоков, прочитанных оператором, использующим план | ||
local_blks_dirtied bigint | ||
Общее количество локальных блоков, «загрязненных» оператором, использующим план | ||
local_blks_written bigint | ||
Общее количество локальных блоков, записанных оператором, использующим план | ||
temp_blks_read bigint | ||
Общее количество временных блоков, прочитанных оператором, использующим план | ||
temp_blks_written bigint | ||
Общее количество временных блоков, записанных оператором, использующим план | ||
blk_read_time double precision | ||
Общее время, затраченное оператором, использующим план, на чтение блоков, в миллисекундах (если установлен параметр track_io_timing, в противном случае ноль) | ||
blk_write_time double precision | ||
Общее время, затраченное оператором, использующим план, на запись блоков, в миллисекундах (если установлен параметр track_io_timing, в противном случае ноль) | ||
first_call timestamp with time zone | ||
Метка времени первого вызова запроса с использованием этого плана. | ||
last_call timestamp with time zone | ||
Метка времени последнего вызова запроса с использованием этого плана. |