pg_stat_statements. Статистика выполнения сервером всех операторов SQL
Версия: 1.8.
В исходном дистрибутиве установлено по умолчанию: да.
Связанные компоненты: отсутствуют.
Схема размещения:
ext
.
Модуль pg_stat_statements
позволяет отслеживать статистику выполнения сервером всех операторов SQL.
Расширение установлено со следующими параметрами:
Параметр | Значение |
---|---|
pg_stat_statements.save | on |
pg_stat_statements.track | top |
pg_stat_statements.max | 5000 |
pg_stat_statements.track_utility | on |
Доработка
Доработка не проводилась.
Ограничения
Ограничения отсутствуют.
Установка
Установка расширения может быть произведена в процессе развертывании СУБД Pangolin при использовании настроек по умолчанию (документ «Руководство по установке», раздел «Автоматизированная установка при помощи Ansible-скриптов»).
Включение модуля возможно вручную при наличии прав администратора СУБД:
CREATE EXTENSION IF NOT EXISTS pg_stat_statements SCHEMA ext;
Настройка
Для работы модуля требуется общая память, поэтому модуль должен быть загружен при запуске PostgreSQL.
Необходимо добавить модуль в shared_preload_libraries
в файл postgresql.conf
.
# 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 \gexecВывод:
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
wal_records | 5
wal_fpi | 0
wal_bytes | 300
Ссылки на документацию разработчика
Дополнительно поставляемый модуль pg_stat_statements: https://www.postgresql.org/docs/15/pgstatstatements.html