pg_stat_statements. Статистика выполнения сервером всех операторов SQL#
Версия: 1.8.
В исходном дистрибутиве установлено по умолчанию: да.
Связанные компоненты: отсутствуют.
Схема размещения:
ext.
Модуль pg_stat_statements позволяет отслеживать статистику выполнения сервером всех операторов SQL.
Расширение установлено со следующими параметрами:
Параметр |
Значение |
|---|---|
|
|
|
|
|
|
|
|
Доработка#
Доработка не проводилась.
Ограничения#
Ограничения отсутствуют.
Установка#
Установка расширения может быть произведена в процессе развертывании СУБД 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