pg_stat_statements. Статистика выполнения сервером всех операторов SQL
Версия: 1.10.
В исходном дистрибутиве установлено по умолчанию: да.
Связанные компоненты: отсутствуют.
Схема размещения:
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 1INSERT 0 1INSERT 0 1INSERT 0 1INSERT 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 | 0total_plan_time | 0min_plan_time | 0max_plan_time | 0mean_plan_time | 0stddev_plan_time | 0calls | 5total_exec_time | 0.21237min_exec_time | 0.017385max_exec_time | 0.106279mean_exec_time | 0.042474stddev_exec_time | 0.03365834724997649rows | 5shared_blks_hit | 4shared_blks_read | 0shared_blks_dirtied | 1shared_blks_written | 1local_blks_hit | 0local_blks_read | 0local_blks_dirtied | 0local_blks_written | 0temp_blks_read | 0temp_blks_written | 0blk_read_time | 0blk_write_time | 0temp_blk_read_time | 0temp_blk_write_time | 0wal_records | 5wal_fpi | 0wal_bytes | 300jit_functions | 0jit_generation_time | 0jit_inlining_count | 0jit_inlining_time | 0jit_optimization_count | 0jit_optimization_time | 0jit_emission_count | 0jit_emission_time | 0
Ссылки на документацию разработчика
Дополнительно поставляемый модуль pg_stat_statements.