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
Метка времени последнего вызова запроса с использованием этого плана.