pg_stat_statements. Статистика выполнения сервером всех операторов SQL
Версия: 1.11.
В исходном дистрибутиве установлено по умолчанию: да.
Связанные компоненты: отсутствуют.
Схема размещения:
ext.
Модуль pg_stat_statements позволяет отслеживать статистику выполнения сервером всех операторов SQL.
Расширение установлено со следующими параметрами:
Параметр | Описание | Значение по умолчанию |
|---|---|---|
| Максимальное количество различных запросов, по которым хранится статистика. Если этот параметр будет недостаточно большим — расширение |
|
| Типы запросов ( |
|
| При значении параметра |
|
| Сохранение отдельно статистику этапа планирования |
|
| Сохранение статистики в файл, в случае штатной перезагрузки сервера |
|
Доработка
Доработка не проводилась.
Ограничения
Ограничения отсутствуют.
Установка
Установка расширения может быть произведена в процессе развертывании СУБД Pangolin при использовании настроек по умолчанию (документ «Руководство по установке»,раздел «Автоматизированная установка при помощи Ansible-скриптов»).
Включение модуля возможно вручную при наличии прав администратора СУБД:
CREATE EXTENSION IF NOT EXISTS pg_stat_statements SCHEMA ext;
Настройка
Для работы модуля требуется общая память, поэтому модуль должен быть загружен при запуске PostgreSQL.
Необходимо добавить модуль в shared_preload_libraries в файл postgresql.conf.
shared_preload_libraries = 'pg_stat_statements'
Использование модуля
Просмотр статистики запроса
-
Создайте таблицу
CREATE TABLE t(n numeric);Вывод:
CREATE TABLE -
Выполните запрос (к примеру, запись данных в таблицу):
SELECT format('INSERT INTO t VALUES (%L)', x) FROM generate_series(1,5) AS x;Вывод:
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1 -
Выполните запрос на статистику оператора SQL, который выполнялся:
SELECT * FROM pg_stat_statements ORDER BY calls DESC LIMIT 1;Пример вывода:
-[ RECORD 1 ]----------+--------------------------
userid | {userid}
dbid | {dbid}
queryid | {queryid}
query | INSERT INTO t VALUES ($1)
plans | 0
total_plan_time | 0
min_plan_time | 0
max_plan_time | 0
mean_plan_time | 0
stddev_plan_time | 0
calls | 5
total_exec_time | 0.21237
min_exec_time | 0.017385
max_exec_time | 0.106279
mean_exec_time | 0.042474
stddev_exec_time | 0.03365834724997649
rows | 5
shared_blks_hit | 4
shared_blks_read | 0
shared_blks_dirtied | 1
shared_blks_written | 1
local_blks_hit | 0
local_blks_read | 0
local_blks_dirtied | 0
local_blks_written | 0
temp_blks_read | 0
temp_blks_written | 0
blk_read_time | 0
blk_write_time | 0
temp_blk_read_time | 0
temp_blk_write_time | 0
wal_records | 5
wal_fpi | 0
wal_bytes | 300
jit_functions | 0
jit_generation_time | 0
jit_inlining_count | 0
jit_inlining_time | 0
jit_optimization_count | 0
jit_optimization_time | 0
jit_emission_count | 0
jit_emission_time | 0
Ссылки на документацию разработчика
Дополнительно поставляемый модуль pg_stat_statements.