Описание структуры отчета по нагрузке Pangolin
В данном разделе описаны таблицы отчета и их столбцы. Большинство объектов, упомянутых в отчете, можно выбрать для выделения всех связанных записей. Также доступен фильтр по подстроке, позволяющий ограничить содержимое отчета объектами, соответствующими заданной подстроке.
Описание
СУБД Pangolin собирает статистику выполнения запроса после завершения его выполнения. Если выполнение одного запроса длится несколько выборок, оно повлияет только на статистику последней выборки (когда завершился запрос). Статистику по выполняющимся в данный момент запросам получить нельзя. Также обслуживающие процессы, такие как vacuum и checkpointer, обновляют статистику только после завершения своей работы.
Сброс любой статистики СУБД Pangolin может повлиять на точность следующей выборки.
Эксклюзивные блокировки на отношения конфликтуют с расчетом размера отношения. В выборку не попадут размеры отношений, у которых имеется блокировка AccessExclusiveLock в любой сессии. Однако сессия может получить AccessExclusiveLock на отношение во время выборки. Чтобы обойти эту проблему, lock_timeout устанавливается в 3с (3 секунды), если он не был задан в сессии, поэтому если функция take_sample() не сможет получить блокировку в течение 3 секунд, она завершится с ошибкой, и выборка не будет создана.
Статистика сервера
Статистика по базам данных (Database statistics)
Таблица содержит статистику по каждой базе данных за период отчета, основанную на представлении pg_stat_database:
-
Database— имя базы данных; -
Transactions— статистика по транзакциям:Commits— количество зафиксированных транзакций (xact_commit);Rollbacks— количество отмененных транзакций (xact_rollback);Deadlocks— количество обнаруженных взаимоблокировок (deadlocks);
-
Checksums— сбои контрольных сумм (если были):Failures— количество сбоев проверки контрольной суммы блоков;Last— время последнего сбоя контрольной суммы;
-
Block statistics— статистика чтения блоков:Hit(%)— процент запросов на чтение блока, которое закончилось чтением кеша и не потребовалось читать диск (blks_hit/(blks_read + blks_read));Read— количество блоков, прочитанных с диска (blks_read);Hit— количество запросов на чтение блока, которое закончилось чтением кеша и не потребовалось читать диск (blks_hit);
-
Block I/O times— время, затраченное на операции ввода-вывода:Read— время, затраченное на чтение блоков данных бэкендами, в секундах;Write— время, затраченное на запись блоков данных бэкендами, в секундах;
-
Tuples— статистика по кортежам:Ret— количество возвращенных кортежей (tup_returned);Fet— количество извлеченных кортежей (tup_fetched);Ins— количество вставленных кортежей (tup_inserted);Upd— количество обновленных кортежей (tup_updated);Del— количество удаленных кортежей (tup_deleted);
-
Temp files— статистика по временным файлам:Size— общий объем данных, записанных во временные файлы (temp_bytes);Files— количество временных файлов (temp_files);
-
Size— размер базы данных на конец периода отчета (pg_database_size()); -
Growth— прирост размера базы данных за период отчета (разницаpg_database_size()).
Статистика сессий по базам данных (Session statistics by database)
Таблица содержит данные о сессиях из представления pg_stat_database:
-
Database— имя базы данных; -
Timings (s)— статистика времени, затраченного сессиями (в секундах):Total— общее время работы сессий в базе данных (session_time). Статистика обновляется при изменении состояния сессии, поэтому длительные простаивающие сессии могут не учитываться;Active— время выполнения SQL-запросов (active_time);Idle(T)— время простоя в транзакции (idle_in_transaction_time);
-
Sessions— количественная статистика сессий:Established— общее количество установленных сессий (sessions);Abandoned— количество прерванных сессий из-за разрыва соединения с клиентом (sessions_abandoned);Fatal— количество прерванных сессий из-за ошибок уровняFATAL(sessions_fatal);Killed— количество сессий, завершенных вручную оператором (sessions_killed).
Статистика запросов по базам данных (Statement statistics by database)
Таблица содержит агрегированную статистику по данным pg_stat_statements (если расширение было доступно в периоде отчета):
-
Database— имя базы данных; -
Calls— общее количество вызовов (суммаcalls); -
Time (s)— время выполнения запросов (в секундах):Plan— время планирования (суммаtotal_plan_time), доступно, начиная сpg_stat_statementsверсии 1.8;Exec— время выполнения (суммаtotal_timeилиtotal_exec_time);Read— время чтения блоков (суммаblk_read_time);Write— время записи блоков (суммаblk_write_time);Trg— время выполнения триггеров;
-
Temp I/O Time— время операций ввода-вывода с временными файлами:Read— время чтения временных блоков;Write— время записи временных блоков;
-
Fetched (blk)— общее количество извлеченных блоков:Shared— извлеченные общие блоки (shared_blks_read+shared_blks_hit);Local— извлеченные локальные блоки (local_blks_read+local_blks_hit);
-
Dirtied (blk)— количество «загрязненных» блоков:Shared— общие блоки (shared_blks_dirtied);Local— локальные блоки (local_blks_dirtied);
-
Temp (blk)— блоки, использованные для операций (например, соединений, сортировок):Read— прочитанные (temp_blks_read);Write— записанные (temp_blks_written);
-
Local (blk)— блоки временных таблиц:Read— прочитанные (local_blks_read);Write— записанные (local_blks_written);
-
Statements— общее количество собранных запросов; -
WAL size— объем WAL, сгенерированный запросами (суммаwal_bytes).
Статистика по кластеру (Cluster statistics)
Таблица содержит данные из представления pg_stat_bgwriter:
Scheduled checkpoints— общее количество контрольных точек, завершенных по расписанию, согласно параметруcheckpoint_timeout(полеcheckpoints_timed);Requested checkpoints— количество контрольных точек, выполненных согласно параметрамmax_wal_size,archive_timeoutили командойCHECKPOINT(полеcheckpoints_req);Checkpoint write time (s)— суммарное время записи контрольных точек в секундах (checkpoint_write_time);Checkpoint sync time (s)- суммарное время синхронизации контрольных точек (checkpoint_sync_time);Checkpoints buffers written- общее количество блоков, записанных процессом контрольной точки (buffers_checkpoint);Background buffers written— количество блоков, записанных процессом фоновой записи (buffers_clean);Bgwriter interrupts (too many buffers)— общее количество прерываний процессаbgwriterиз-за достижения лимитаbgwriter_lru_maxpages;Number of buffers allocated— общее количество выделенных буферов (buffers_alloc);WAL generated— объем сгенерированных данныхWAL(на основе разницыpg_current_wal_lsn());Start LSN— значениеLSNв начале отчетного периода;End LSN— значениеLSNв конце отчетного периода;WAL segments archived— количество успешно архивированных сегментовWAL(на основеarchived_countизpg_stat_archiver);WAL segments archive failed— количество неудачных попыток архивации сегментовWAL(на основеfailed_countизpg_stat_archiver).
Статистика по WAL (WAL statistics)
Таблица содержит данные из представления pg_stat_wal:
WAL generated— общий объем сгенерированных данных WAL (wal_bytes);WAL per second— средний объем WAL, генерируемый в секунду;WAL records- общее количество сгенерированных записей WAL (wal_records);WAL FPI- количество полных образов страниц (Full Page Images), включенных в WAL (wal_fpi);WAL buffers full- количество случаев, когда данные WAL были записаны на диск из-за переполнения WAL-буферов (wal_buffers_full);WAL writes- количество вызовов записиXLogWriteWAL-буферов на диск (wal_write);WAL writes per second— среднее количество записей WAL на диск в секунду;WAL sync- количество вызовов синхронизации файлов WAL на диск (запросissue_xlog_fsync), при условии, чтоfsync = onиwal_sync_method=fdatasync,fsyncилиfsync_writethrough, иначе всегда0(wal_sync);WAL syncs per second— среднее количество синхронизаций WAL в секунду;WAL write time (s)- общее время, затраченное на запись WAL-буферов на диск черезXLogWrite, в секундах, при условии, что включенtrack_wal_io_timing, иначе —0. Включает время синхронизации, еслиwal_sync_method—open_datasyncилиopen_sync(wal_write_time);WAL write duty- время записи WAL как доля от общей длительности отчетного периода;WAL sync time (s)— общее время, затраченное на синхронизацию файлов WAL на диск, в секундах, при условии, чтоtrack_wal_io_timing = on,fsync = on, иwal_sync_method=fdatasync,fsyncилиfsync_writethrough, иначе —0(wal_sync_time);WAL sync duty— время синхронизации WAL как доля от общей длительности отчетного периода.
Статистика по табличным пространствам (Tablespace statistics)
Таблица содержит информацию о размерах и приросте табличных пространств:
Tablespace— имя табличного пространства;Path— путь до табличного пространства;Size— объем табличного пространства на момент последней выборки в отчетном периоде;Growth— увеличение объема табличного пространства за отчетный период.
Статистика ввода-вывода кластера (Cluster I/O statistics)
Таблица содержит статистику по операциям ввода-вывода, разбитую по типам объектов, типам бэкендов и контекстам, основанная на pg_stat_io:
-
Object— тип объекта, с которым выполнялась операция ввода-вывода; -
Backend— тип бэкенда, выполнившего операцию; -
Context— контекст операции ввода-вывода; -
Reads— статистика по операциям чтения:Count— количество операций чтения;Bytes— объем прочитанных данных;Time— время, затраченное на операции чтения (в секундах);
-
Writes— статистика по операциям записи:Count— количество операций записи;Bytes— объем записанных данных;Time— время, затраченное на операции записи (в секундах);
-
Writebacks— запросы на запись данных в постоянное хранилище:Count— количество блоков, которые процесс запросил записать на диск;Bytes— объем данных, запрошенных для записи на диск;Time— время, затраченное на операции выгрузки (в секундах);
-
Extends— операции расширения отношений:Count— количество операций расширения;Bytes— объем выделенного пространства;Time— время, затраченное на операции расширения (в секундах);
-
Hits— количество случаев, когда нужный блок был найден в общем буфере; -
Evictions— количество вытеснений блоков из общего или локального буфера; -
Reuses— количество повторных использований существующего буфера в кольцевом буфере (внеshared buffers) при операциях ввода-вывода в контекстахbulkread,bulkwriteилиvacuum; -
Fsyncs— операцииfsync:Count— количество вызововfsync(учитываются только в контекстеnormal);Time— время, затраченное наfsync(в секундах).
Статистика SLRU кластера (Cluster SLRU statistics)
Таблица содержит статистику обращений к кешам SLRU (на основе представления pg_stat_slru).
Name— имя SLRU-кеша;Zeroed— количество блоков, обнуленных при инициализации;Hits— количество случаев, когда блок был найден вSLRU(без чтения с диска, не включает кеш файловой системы ОС);Reads— количество блоков, прочитанных с диска для этогоSLRU;%Hit— доля попаданий относительно суммыreads+hits;Writes— количество блоков, записанных для этогоSLRU;Checked— количество проверок существования блоков (blks_exists);Flushes— количество сбросов грязных данных;Truncates— количество операций усечения.
Средние минимальные и максимальные времена выполнения запросов (Statement average min/max timings)
Таблица содержит агрегированную статистику по минимуму и максимуму времени выполнения запросов из представления pg_stat_statements (если расширение pg_stat_statements было доступно в течение отчетного периода):
-
Database— имя базы данных -
Average planning times (ms)— среднее значение минимального и максимального времени планирования:Min (ms.)— среднее значениеmin_plan_timeпо всем запросам и всем выборкам в отчете;Max (ms.)— среднее значениеmax_plan_timeпо всем запросам и всем выборкам в отчете;Delta%— разница между среднимmax_plan_timeи среднимmin_plan_timeв процентах от среднегоmin_plan_time. Чем меньше этот показатель — тем стабильнее планирование запросов в базе данных;
-
Average execution times (ms)— среднее значение минимального и максимального времени выполнения:Min (ms.)— среднее значениеmin_exec_timeпо всем запросам и всем выборкам в отчете;Max (ms.)— среднее значениеmax_exec_timeпо всем запросам и всем выборкам в отчете;Delta%— разница между среднимmax_exec_timeи среднимmin_exec_timeв процентах от среднегоmin_exec_time. Чем меньше — тем стабильнее выполнение запросов;
-
Statements— общее количество уникальных запросов, зафиксированных в отчете.
Этот раздел позволяет оценить стабильность планирования и выполнения запросов в кластере. Например, для выявления насколько сильно варьируются времена выполнения одних и тех же запросов.
JIT-статистика по базам данных (JIT statistics by database)
Таблица содержит суммарную статистику по JIT-компиляции (Just-In-Time), предоставляемую расширением pg_stat_statements. Доступна начиная с версии pg_stat_statements версии 1.10 и выше.
-
Database— имя базы данных; -
Calls- общее количество выполнений всех запросов (суммаcalls); -
Time (s)— общее время, затраченное на:Plan— планирование (суммаtotal_plan_time) — доступно начиная с версииpg_stat_statements1.8;Exec— выполнение (суммаtotal_timeилиtotal_exec_time);
-
Generation- генерация кода:Count— общее число функций, скомпилированныхJIT;Gen. time— суммарное время, затраченное на генерациюJIT-кода (в секундах);
-
Inlining- встраивание:Count— количество случаев встраивания функций (inlining);Time- общее время, затраченное на встраивание (в секундах);
-
Optimization- оптимизация:Count- количество оптимизаций запросов;Time- общее время, затраченное на оптимизацию (в секундах);
-
Emission- генерация машинного кода:Count— количество случаев генерации исполняемого кода;Time- общее время, затраченное на генерацию кода (в секундах);
-
Deform- преобразование кортежей:Count— количество функцийJIT-компиляции для преобразования кортежей (tuple deforming);Time— общее время, затраченное наJIT-компиляцию функций деформации (в секундах).
Выборка ожиданий (Wait sampling)
Этот раздел содержит данные из расширения pg_wait_sampling, если оно было доступно в течение отчетного периода.
Типы событий ожидания (Wait events types)
Таблица показывает суммарное время ожидания по каждому типу события ожидания за отчетный период. Статистика включает как ожидания при выполнении запросов, так и общие ожидания (включая фоновую активность):
Wait event type— тип события ожидания (смотрите представлениеpg_stat_activity)Statements Waited (s)— суммарное время ожидания типа событий в ходе выполнения запросов (когда параметрpg_wait_sampling_profile.queryidнеNULL), в секундах;%Total— доля времени ожидания типа событий среди всех ожиданий запросов;All Waited (s)— суммарное время ожидания событий типа событий всеми бэкендами (включая фоновые процессы);%Total— доля времени ожидания типа событий среди всех ожиданий бэкендов.
Топ событий ожидания по запросам (Top wait events (statements))
Таблица содержит топ pg_profile.topn событий ожидания по суммарному времени ожидания во время выполнения запросов (когда pg_wait_sampling_profile.queryid IS NOT NULL):
Wait event type— тип события (смотритеpg_stat_activity);Wait event— имя события ожидания (смотритеpg_stat_activity);Waited (s)— время ожидания события запросами (в секундах);%Total— доля времени ожидания данного события среди всех ожиданий запросов.
Топ событий ожидания по всем процессам (Top wait events (All))
Таблица содержит топ pg_profile.topn событий ожидания, включая фоновую активность:
Wait event type— тип события (смотритеpg_stat_activity);Wait event— имя события (смотритеpg_stat_activity);Waited (s)— суммарное время ожидания событием всеми бэкендами (в секундах);%Total— доля времени ожидания среди всех ожиданий бэкендов.
Состояния сессий, зафиксированные при выборочном сборе данных (Session states observed by subsamples)
Этот раздел отчета содержит информацию о состояниях сессий, полученные в ходе выборочного мониторинга в течение отчетного периода.
График состояний сессий (Chart with session state)
Визуализация состояний сессий, зафиксированных выборочным способом. Это временная диаграмма, отображающая состояния бэкендов и транзакций. При наведении на состояние показывается всплывающая подсказка с атрибутами сессии. При нажатии на состояние — оно будет выделено в таблице ниже.
Статистика по состояниям сессий по базам данных (Session state statistics by database)
Таблица содержит агрегированные данные по состояниям сессий. Учитываются только состояния, зафиксированные выборочным способом:
-
Database- имя базы данных; -
Summary- итоговые значения за отчетный период:Active- общее время в состоянииactive;Idle in xact- общее время в состоянииidle in transaction;Idle in xact (A)— общее время в состоянииidle in transaction (aborted);
-
Maximal— наибольшие зафиксированные значения:Active- длительность самого длинного состоянияactive;Idle in xact- длительность самого длинного состоянияidle in transaction;Idle in xact (A)— длительность самого длинного состоянияidle in transaction (aborted);xact age- максимальный возраст транзакции, найденный при выборке.
Топ состояний idle in transaction по длительности (Top 'idle in transaction' session states by duration)
Таблица содержит список топ pg_profile.topn самых длительных состояний idle in transaction, как они были зафиксированы в pg_stat_activity при последнем выборочном мониторинге:
Database- имя базы данных (datname);User- имя пользователя (usename);App- имя приложения (application_name);Pid- идентификатор процесса (pid);Xact start- отметка времени начала транзакции (xact_start);State change- отметка времени изменения состояния (state_change);State duration- длительность состояния (разница междуclock_timestamp()иstate_change).
Топ состояний active по длительности (Top 'active' session states by duration)
Таблица содержит информацию о топ pg_profile.topn самых длинных состояний active, как они были зафиксированы в pg_stat_activity при последнем выборочном мониторинге:
Database- имя базы данных (datname);User- имя пользователя (usename);App- имя приложения (application_name);Pid- идентификатор процесса (pid);Xact start- отметка времени начала транзакции (xact_start);State change- отметка времени изменения состояния (state_change);State duration- длительность состояния (разница междуclock_timestamp()иstate_change).
Топ состояний по возрасту транзакции (Top states by transaction age)
Таблица содержит состояния сессий, упорядоченные по возрасту транзакции, как они были в представлении pg_stat_activity в последний раз в транзакции:
Database- имя базы данных (datname);User- имя пользователя (usename);App- имя приложения (application_name);Pid- идентификатор процесса (pid);Xact start- отметка времени начала транзакции (xact_start);Xact duration- длительность транзакции (разница междуclock_timestamp()иxact_start);Age- возраст транзакции (age(backend_xmin));State- состояние сессии при максимальном обнаруженном возрасте;State change- отметка времени изменения состояния (state_change);State duration- длительность состояния (разница междуclock_timestamp()иstate_change).
Топ состояний по длительности транзакции (Top states by transaction duration)
Аналогично предыдущей таблице «Top states by transaction age», но упорядочено по длительности транзакции. Состояния сессий, упорядоченные по длительности транзакции, как они были в представлении pg_stat_activity в последний раз в транзакции:
Database- имя базы данных (datname);User- имя пользователя (usename);App- имя приложения (application_name);Pid- идентификатор процесса (pid);Xact start- отметка времени начала транзакции (xact_start);Xact duration- длительность транзакции (разница междуclock_timestamp()иxact_start);Age- возраст транзакции (age(backend_xmin));State- состояние сессии при максимальном обнаруженном возрасте;State change- отметка времени изменения состояния (state_change);State duration- длительность состояния (разница междуclock_timestamp()иstate_change).
Статистика SQL-запросов (SQL query statistics)
Этот раздел отчета содержит таблицы SQL-запросов за отчетный период, отсортированных по ключевым метрикам. Данные собираются из представления pg_stat_statements, если оно было доступно во время выборки.
Любой запрос можно выделить нажатием на него — при этом будут подсвечены все связанные строки во всех SQL-связанных разделах. Также после нажатия на запрос под строкой отобразится предпросмотр текста запроса. Повторное нажатие скрывает текст.
Топ SQL по общему времени выполнения (Top SQL by elapsed time)
Таблица содержит топ pg_profile.topn запросов, отсортированных по суммарному времени total_plan_time + total_exec_time:
-
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements (queryid)в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter; -
Database- имя базы данных запроса (вычисляется из поляdbid); -
User- имя пользователя, выполнившего запрос (вычисляется из поляuserid); -
%Total- общее время запроса в процентах от общего времени всех запросов в кластере; -
Time (s)- время, затраченное на запрос (в секундах):Elapsed- общее время, затраченное на запрос (total_plan_time + total_exec_time);Plan- время, затраченное на планирование запроса (total_plan_time);Exec- время, затраченное на выполнение запроса (total_exec_time);
-
JIT time (s)- общее время, затраченноеJITна выполнение запроса, в секундах (jit_generation_time + jit_inlining_time + jit_optimization_time + jit_emission_time); -
I/O time (s)– время, затраченное на операции ввода-вывода:Read- время, затраченное на чтение блоков (blk_read_time);Write- время, затраченное на запись блоков (blk_write_time);
-
CPU time (s)- время, затраченное на CPU. Основано на данных, предоставляемых расширением pg_stat_kcache:Usr- время CPU, затраченное в пользовательском пространстве;Sys- время CPU, затраченное в пространстве ядра;
-
Plans- количество раз, когда запрос был спланирован (plans); -
Executions- количество раз, когда запрос был выполнен (calls); -
%Cvr- покрытие – продолжительность сбора статистики запроса в процентах от продолжительности отчета.
Топ SQL по времени планирования (Top SQL by planning time)
Таблица содержит топ pg_profile.topn запросов, отсортированных по полю total_plan_time представления pg_stat_statements:
-
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter; -
Database- имя базы данных запроса (вычисляется из поляdbid); -
User- имя пользователя, выполнившего запрос (вычисляется из поляuserid); -
Plan elapsed (s)- время, затраченное на планирование запроса (total_plan_time); -
%Elapsed- время планирования запроса в процентах от общего времени выполнения запроса; -
Plan times (ms)- детальная статистика времени планирования запроса (в миллисекундах):Mean- среднее время, затраченное на планирование запроса (mean_plan_time);Min- минимальное время, затраченное на планирование запроса (min_plan_time);Max- максимальное время, затраченное на планирование запроса (max_plan_time);StdErr- стандартное отклонение времени, затраченного на планирование запроса (stddev_plan_time);
-
Plans- количество раз, когда запрос был спланирован (plans); -
Executions- количество раз, когда запрос был выполнен (calls); -
%Cvr- Покрытие: продолжительность сбора статистики запроса в процентах от продолжительности отчета.
Топ SQL по времени выполнения (Top SQL by execution time)
Таблица содержит топ pg_profile.topn запросов, отсортированных по полю total_time (или total_exec_time) представления pg_stat_statements:
-
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter; -
Database- имя базы данных запроса (вычисляется из поляdbid); -
User- имя пользователя, выполнившего запрос (вычисляется из поляuserid); -
Exec (s)- время, затраченное на выполнение запроса (total_exec_time); -
%Elapsed- время выполнения запроса в процентах от общего времени выполнения запроса; -
%Total- время выполнения запроса в процентах от общего времени выполнения всех запросов в кластере; -
JIT time (s)- общее время, затраченноеJITна выполнение запроса, в секундах (jit_generation_time + jit_inlining_time + jit_optimization_time + jit_emission_time); -
I/O time (s)– время, затраченное на операции ввода-вывода:Read- время, затраченное на чтение блоков (blk_read_time);Write- время, затраченное на запись блоков (blk_write_time);
-
Rows- количество строк, полученных или затронутых запросом (rows); -
Execution times (ms)- детальная статистика времени выполнения запроса (в миллисекундах):Mean- среднее время, затраченное на выполнение этого запроса (mean_exec_time);Min- минимальное время, затраченное на выполнение этого запроса (min_exec_time);Max- максимальное время, затраченное на выполнение этого запроса (max_exec_time);StdErr- стандартное отклонение времени, затраченного на выполнение этого запроса (stddev_exec_time);
-
Executions- количество раз, когда запрос был выполнен (calls); -
%Cvr- покрытие – продолжительность сбора статистики запроса в процентах от продолжительности отчета.
Топ SQL по среднему времени выполнения (Top SQL by mean execution time)
Таблица содержит топ pg_profile.topn запросов, отсортированных по полю mean_time (или mean_exec_time) представления pg_stat_statements:
-
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter; -
Database- имя базы данных запроса (вычисляется из поляdbid); -
User- имя пользователя, выполнившего запрос (вычисляется из поляuserid); -
Execution times (ms)- детальная статистика времени выполнения запроса (в миллисекундах):Mean- среднее время, затраченное на выполнение запроса (mean_exec_time);Min- минимальное время, затраченное на выполнение запроса (min_exec_time);Max- максимальное время, затраченное на выполнение запроса (max_exec_time);StdErr- стандартное отклонение времени, затраченного на выполнение запроса (stddev_exec_time);
-
Exec (s)- время, затраченное на выполнение запроса (total_exec_time); -
%Elapsed- время выполнения запроса в процентах от общего времени выполнения запроса; -
%Total- время выполнения запроса в процентах от общего времени выполнения всех запросов в кластере; -
JIT time (s)- общее время, затраченноеJITна выполнение запроса, в секундах (jit_generation_time + jit_inlining_time + jit_optimization_time + jit_emission_time); -
I/O time (s)– время, затраченное на операции ввода-вывода:Read- время, затраченное на чтение блоков (blk_read_time);Write- время, затраченное на запись блоков (blk_write_time);
-
Rows- количество строк, полученных или затронутых запросом (rows); -
Executions- количество раз, когда запрос был выполнен (calls); -
%Cvr- покрытие – продолжительность сбора статистики запроса в процентах от продолжительности отчета.
Топ SQL по количеству выполнений (Top SQL by executions)
Таблица содержит топ pg_profile.topn запросов, отсортированных по полю calls представления pg_stat_statements:
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter;Database- имя базы данных запроса (вычисляется из поляdbid);User- имя пользователя, выполнившего запрос (вычисляется из поляuserid);Executions- количество выполнений запроса (calls);%Total- количествоcallsзапроса в процентах от общего количестваcallsвсех запросов в кластере;Rows- количество строк, полученных или затронутых запросом (rows);Mean(ms)- среднее время, затраченное на выполнение запроса, в миллисекундах (mean_timeилиmean_exec_time);Min(ms)- минимальное время, затраченное на выполнение запроса, в миллисекундах (min_timeилиmin_exec_time);Max(ms)- максимальное время, затраченное на выполнение запроса, в миллисекундах (max_timeилиmax_exec_time);StdErr(ms)- стандартное отклонение времени, затраченного на выполнение запроса, в миллисекундах (stddev_timeилиstddev_exec_time);Elapsed(s)- общее время, затраченное на выполнение запроса, в секундах (total_timeилиtotal_exec_time);%Cvr- Покрытие: продолжительность сбора статистики запроса в процентах от продолжительности отчета.
Топ SQL по времени ожидания ввода-вывода (Top SQL by I/O wait time)
Таблица содержит топ pg_profile.topn запросов, отсортированных по времени чтения и записи (blk_read_time + blk_write_time):
-
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter; -
Database- имя базы данных запроса (вычисляется из поляdbid); -
User- имя пользователя, выполнившего запрос (вычисляется из поляuserid); -
IO(s)- общее время, затраченное на чтение и запись (время ввода-вывода) запросом, в секундах (blk_read_time + blk_write_time); -
R(s)- время, затраченное на чтение запросом, в секундах (blk_read_time); -
W(s)- время, затраченное на запись запросом, в секундах (blk_write_time); -
%Total- время ввода-вывода запроса в процентах от общего времени ввода-вывода всех запросов в кластере; -
Reads- количество блоков, прочитанных запросом, разделенные на три подстолбца:Shr- общие чтения (shared_blks_read);Loc- локальные чтения (local_blks_read);Tmp- временные чтения (temp_blks_read);
-
Writes- количество блоков, записанных запросом, разделенные на три подстолбца:Shr- общие записи (shared_blks_written);Loc- локальные записи (local_blks_written);Tmp- временные записи (temp_blks_written);
-
Elapsed(s)- общее время, затраченное на выполнение запроса, в секундах (total_timeилиtotal_exec_time); -
Executions- количество выполнений запроса (calls); -
%Cvr- покрытие – продолжительность сбора статистики запроса в процентах от продолжительности отчета.
Топ SQL по количеству полученных общих блоков (Top SQL by shared blocks fetched)
Таблица содержит топ pg_profile.topn запросов, отсортированных по количеству прочитанных и попавших в кеш блоков, помогает выявить запросы с наибольшей обработкой данных:
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter.Database- имя базы данных запроса (вычисляется из поляdbid);User- имя пользователя, выполнившего запрос (вычисляется из поляuserid);blks fetched- количество полученных блоков (выражениеshared_blks_hit + shared_blks_read);%Total- количество полученных блоков для запроса в процентах от общего количества полученных блоков для всех запросов в кластере;Hits(%)- процент блоков, полученных из буферов, от общего количества полученных блоков;Elapsed(s)- общее время, затраченное на выполнение запроса, в секундах (total_timeилиtotal_exec_time+total_plan_time);Rows- количество строк, полученных или затронутых запросом (rows);Executions- количество выполнений запроса (calls);%Cvr- покрытие – продолжительность сбора статистики запроса в процентах от продолжительности отчета.
Топ SQL по количеству чтений общих блоков (Top SQL by shared blocks read)
Таблица содержит топ pg_profile.topn запросов, отсортированных по количеству общих чтений, помогает выявить самые интенсивные по чтению запросы:
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter;Database- имя базы данных запроса (вычисляется из поляdbid);User- имя пользователя, выполнившего запрос (вычисляется из поляuserid);Reads- количество общих прочитанных блоков для запроса (shared_blks_read);%Total- количество общих чтений для запроса в процентах от общего количества общих чтений для всех запросов в кластере;Hits(%)- процент блоков, полученных из буферов, от общего количества полученных блоков;Elapsed(s)- общее время, затраченное на выполнение запроса, в секундах (total_timeилиtotal_exec_time+total_plan_time);Rows- количество строк, полученных или затронутых запросом (rows);Executions- количество выполнений запроса (calls);%Cvr- покрытие – продолжительность сбора статистики запроса в процентах от продолжительности отчета.
Топ SQL по количеству измененных общих блоков (Top SQL by shared blocks dirtied)
Таблица содержит топ pg_profile.topn запросов, отсортированных по количеству измененных общих блоков, помогает выявить самые интенсивные по изменению данных запросы:
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter;Database- имя базы данных запроса (вычисляется из поляdbid);User- имя пользователя, выполнившего запрос (вычисляется из поляuserid);Dirtied- количество измененных общих блоков запросом (shared_blks_dirtied);%Total- количество измененных общих блоков запросом в процентах от общего количества измененных общих блоков всеми запросами в кластере;Hits(%)- процент блоков, полученных из буферов, от общего количества полученных блоков;WAL- объем WAL, сгенерированный запросом (wal_bytes);%Total- объем WAL, сгенерированный запросом, в процентах от общего объема WAL, сгенерированного в кластере (увеличениеpg_current_wal_lsn());Elapsed(s)- общее время, затраченное на выполнение запроса, в секундах (total_timeилиtotal_exec_time+total_plan_time);Rows- количество строк, полученных или затронутых запросом (rows);Executions- количество выполнений запроса (calls);%Cvr- покрытие – продолжительность сбора статистики запроса в процентах от продолжительности отчета.
Топ SQL по количеству записанных общих блоков (Top SQL by shared blocks written)
Таблица содержит топ pg_profile.topn запросов, которые выполняли запись, отсортированные по количеству записанных блоков:
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter;Database- имя базы данных запроса (вычисляется из поляdbid);User- имя пользователя, выполнившего запрос (вычисляется из поляuserid);Written- количество блоков, записанных запросом (shared_blks_written);%Total- количество блоков, записанных запросом, в процентах от общего количества блоков, записанных всеми запросами в кластере;%BackendW- количество блоков, записанных запросом, в процентах от всех блоков, записанных в кластере бэкендами (buffers_backendполе представленияpg_stat_bgwriter);Hits(%)- процент блоков, полученных из буферов, от общего количества полученных блоков;Elapsed(s)- общее время, затраченное на выполнение запроса, в секундах (total_timeилиtotal_exec_time+total_plan_time);Rows- количество строк, полученных или затронутых запросом (rows);Executions- количество выполнений запроса (calls);%Cvr- покрытие – продолжительность сбора статистики запроса в процентах от продолжительности отчета.
Топ SQL по размеру WAL (Top SQL by WAL size)
Таблица содержит топ pg_profile.topn запросов, отсортированных по объему сгенерированного WAL (доступно начиная с версии pg_stat_statements 1.8):
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter;Database- имя базы данных запроса (вычисляется из поляdbid);User- имя пользователя, выполнившего запрос (вычисляется из поляuserid);WAL- объем WAL, сгенерированный запросом (wal_bytes);%Total- объем WAL, сгенерированный запросом, в процентах от общего объема WAL, сгенерированного в кластере (увеличениеpg_current_wal_lsn());Dirtied- количество измененных общих блоков этим запросом (shared_blks_dirtied);WAL FPI- общее количество полных образов страниц WAL, сгенерированных запросом (wal_fpi);WAL records- общее количество байтов WAL, сгенерированных запросом (wal_bytes);%Cvr- покрытие – продолжительность сбора статистики запроса в процентах от продолжительности отчета.
Топ SQL по использованию временных данных (Top SQL by temp usage)
Таблица содержит топ pg_profile.topn запросов, отсортированных по вводу-выводу временных блоков, рассчитанному как сумма полей temp_blks_read, temp_blks_written, local_blks_read и local_blks_written:
-
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter; -
Database- имя базы данных запроса (вычисляется из поляdbid); -
User- имя пользователя, выполнившего запрос (вычисляется из поляuserid); -
Local fetched- количество полученных локальных блоков (выражение:local_blks_hit + local_blks_read); -
Hits(%)- процент локальных блоков, полученных из временных буферов, от общего количества полученных локальных блоков; -
Local (blk)- статистика ввода-вывода блоков, используемых во временных таблицах:Write- количество записанных локальных блоков (local_blks_written);%Total-local_blks_writtenзапроса в процентах от общего количестваlocal_blks_writtenвсех запросов в кластере;Read- количество прочитанных локальных блоков (local_blks_read);%Total-local_blks_readзапроса в процентах от общего количестваlocal_blks_readвсех запросов в кластере;
-
Temp (blk)- статистика ввода-вывода блоков, используемых в операциях (например, сортировки и соединения):Write- количество записанных временных блоков (temp_blks_written);%Total-temp_blks_writtenзапроса в процентах от общего количестваtemp_blks_writtenвсех запросов в кластере;Read- количество прочитанных локальных блоков (temp_blks_read);%Total-temp_blks_readзапроса в процентах от общего количестваtemp_blks_readвсех запросов в кластере;
-
Elapsed(s)- общее время, затраченное на выполнение запроса, в секундах (total_timeилиtotal_exec_time+total_plan_time); -
Rows- количество строк, полученных или затронутых запросом (rows); -
Executions- количество выполнений запроса (calls); -
%Cvr- покрытие – продолжительность сбора статистики запроса в процентах от продолжительности отчета.
Топ SQL по использованию временного ввода-вывода (Top SQL by temp I/O usage)
Таблица содержит топ pg_profile.topn запросов, отсортированных по времени временного ввода-вывода, рассчитанному как сумма полей temp_blk_read_time и temp_blk_write_time:
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter;Database- имя базы данных запроса (вычисляется из поляdbid);User- имя пользователя, выполнившего запрос (вычисляется из поляuserid);Temp I/O time (s)- время, затраченное на ввод-вывод блоков временных файлов;Read- время, затраченное на чтение блоков временных файлов, в секундах;Write- время, затраченное на запись блоков временных файлов, в секундах;%Total- время временного ввода-вывода запроса в процентах от общего времени временного ввода-вывода всех запросов в кластере;Temp (blk)- статистика ввода-вывода блоков, используемых в операциях (например, сортировки и соединения);Write- количество записанных временных блоков (temp_blks_written);%Total-temp_blks_writtenзапроса в процентах от общего количестваtemp_blks_writtenвсех запросов в кластере;Read- количество прочитанных локальных блоков (temp_blks_read);%Total-temp_blks_readзапроса в процентах от общего количестваtemp_blks_readвсех запросов в кластере;Elapsed(s)- общее время, затраченное на выполнение запроса, в секундах (total_timeилиtotal_exec_time+total_plan_time);Rows- количество строк, полученных или затронутых запросом (rows);Executions- количество выполнений запроса (calls);%Cvr- покрытие – продолжительность сбора статистики запроса в процентах от продолжительности отчета.
Статистика использования ресурсов (Rusage statistics)
Этот раздел содержит статистику использования ресурсов, предоставляемую расширением pg_stat_kcache, если оно было доступно во время периода отчета.
Топ SQL по системному и пользовательскому времени (Top SQL by system and user time)
Таблица содержит топ pg_profile.topn запросов, отсортированных по сумме полей user_time и system_time расширения pg_stat_kcache:
-
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter; -
Database- имя базы данных запроса (вычисляется из поляdbid); -
User- имя пользователя, выполнившего запрос (вычисляется из поляuserid); -
User Time- пользовательское время CPU:Plan (s)- пользовательское время CPU, затраченное на планирование, в секундах (plan_user_time);Exec (s)- пользовательское время CPU, затраченное на выполнение, в секундах (exec_user_timeилиuser_time);%Total- пользовательское время CPU этого запроса в процентах от суммарного пользовательского времени CPU всех запросов;
-
System Time- системное время CPU:Plan (s)- системное время CPU, затраченное на планирование, в секундах (plan_system_time);Exec (s)- системное время CPU, затраченное на выполнение, в секундах (exec_system_timeилиsystem_time);%Total- системное время CPU этого запроса в процентах от суммарного системного времени CPU всех запросов.
Топ SQL по операциям чтения/записи файловой системы (Top SQL by reads/writes done by filesystem layer)
Таблица содержит топ pg_profile.topn запросов, отсортированных по сумме полей reads и writes расширения pg_stat_kcache:
-
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter; -
Database- имя базы данных запроса (вычисляется из поляdbid); -
User- имя пользователя, выполнившего запрос (вычисляется из поляuserid); -
Read Bytes- количество байт, прочитанных файловой системой:Plan- байты, прочитанные во время планирования (plan_reads);Exec- байты, прочитанные во время выполнения (exec_reads);%Total- количество байт, прочитанных этим запросом, в процентах от общего количества прочитанных байт всех запросов;
-
Writes- количество байт, записанных файловой системой (writes):Plan- байты, записанные во время планирования (plan_writes);Exec- байты, записанные во время выполнения (exec_writes);%Total- количество байт, записанных этим запросом, в процентах от общего количества записанных байт всех запросов.
Топ SQL по общему времени JIT (Top SQL by JIT elapsed time)
Таблица содержит топ pg_profile.topn запросов, отсортированных по общему времени, связанному с JIT (то есть jit_generation_time + jit_inlining_time + jit_optimization_time + jit_emission_time) (доступно начиная с версии pg_stat_statements 1.10 и выше):
-
Query ID- идентификатор запроса, предоставляемый расширениемpg_stat_statements(queryid) в шестнадцатеричной нотации. Альтернативный идентификатор запроса в виде хешаdbid,useridиqueryidпоказан в квадратных скобках. Этот идентификатор совместим с утилитойpgcenter; -
Database- имя базы данных запроса (вычисляется из поляdbid); -
User- имя пользователя, выполнившего запрос (вычисляется из поляuserid); -
JIT total (s)- время, затраченноеJITв секундах (jit_generation_time + jit_inlining_time + jit_optimization_time + jit_emission_time); -
Generation- генерация кода:Count- общее количество функций, скомпилированных с помощьюJITэтим запросом;Gen. time- общее время, затраченное запросом на генерациюJIT-кода;
-
Inlining- встраивание:Count- количество раз, когда функции были встроены;Time- общее время, затраченное запросом на встраивание функций (в секундах);
-
Optimization- оптимизация:Count- количество раз, когда запрос был оптимизирован;Time- общее время, затраченное запросом на оптимизацию (в секундах);
-
Emission- генерация машинного кода:Count- количество раз, когда код был сгенерирован;Time- общее время, затраченное запросом на генерацию кода (в секундах);
-
Deform- преобразование кортежей:Count- количество функций преобразования кортежей, скомпилированных с помощьюJITэтим запросом;Time- общее время, затраченное запросом на компиляцию функций преобразования кортежей с помощьюJIT(в секундах);
-
Time (s)- время, затраченное на выполнение этого запроса (в секундах):Plan- время, затраченное на планирование этого запроса (total_plan_time);Exec- время, затраченное на выполнение этого запроса (total_exec_time);
-
I/O time (s)– время, затраченное на операции ввода-вывода:Read- время, затраченное на чтение блоков (blk_read_time);Write- время, затраченное на запись блоков (blk_write_time);
-
%Cvr- покрытие – продолжительность сбора статистики запроса в процентах от продолжительности отчета.
Полный список текстов SQL (Complete list of SQL texts)
Тексты запросов всех операторов, упомянутых в отчете. Используйте ссылку Query ID в любой таблице статистики, чтобы перейти туда и просмотреть текст запроса. Запросы в этом разделе ограничены pg_profile.max_query_length (по умолчанию 20000) символов, но полный текст запроса можно получить из таблиц расширения. Одна запись queryid в этом списке может иметь несколько фактических текстов запросов, захваченных в разных выборках. Будут указаны только три последних текста запросов.
Статистика по объектам схемы (Schema object statistics)
Этот раздел отчета содержит топ баз данных по объектам, используя статистику из представлений сбора статистики.
Топ таблиц по оценочному объему последовательного сканирования (Top tables by estimated sequentially scanned volume)
Таблица содержит топ таблиц базы данных, отсортированных по оценочному объему, считанному при последовательных сканированиях, основанная на представлении pg_stat_all_tables. Здесь происходит поиск таблиц, которым, возможно, не хватает индекса. Если размеры отношений не были собраны с помощью pg_relation_size(), оценка будет выполнена на основе поля pg_class.relpages. Это будет менее точно, поэтому такие значения будут указаны в квадратных скобках.
Содержание таблицы:
DB- имя базы данных таблицы;Tablespace- имя табличного пространства, в котором расположена таблица;Schema- имя схемы таблицы;Table- имя таблицы;~SeqBytes- оценочный объем, считанный при последовательных сканированиях. Рассчитывается как сумма размера отношения, умноженная наseq_scanдля всех выборок отчета;SeqScan- количество последовательных сканирований, выполненных для таблицы (seq_scan);IxScan- количество инициированных индексных сканирований для таблицы (idx_scan);IxFet- количество живых строк, полученных с помощью индексных сканирований (idx_tup_fetch);Ins- количество вставленных строк (n_tup_ins);Upd- количество обновленных строк (включаяHOT) (n_tup_upd);Del- количество удаленных строк (n_tup_del);Upd(HOT)- количество строк, обновленных с помощьюHOT(n_tup_hot_upd).
Топ таблиц по количеству полученных блоков (Top tables by blocks fetched)
Полученный блок — это блок, обрабатываемый с диска (read) или из общих буферов (hit). Таблицы в этом списке отсортированы по сумме полученных блоков для отношения таблицы, ее индексов, TOAST-таблицы (если существует) и индекса TOAST (если существует). Этот раздел помогает обратить внимание на таблицы с чрезмерной обработкой блоков. Основано на данных представления pg_statio_all_tables.
Содержание таблицы:
DB- имя базы данных таблицы;Tablespace- имя табличного пространства, в котором расположена таблица;Schema- имя схемы таблицы;Table- имя таблицы;Heap- статистика по полученным блокам отношения (heap_blks_read + heap_blks_hit);Ix- статистика по полученным блокам всех индексов отношения (idx_blks_read + idx_blks_hit);TOAST- статистика по полученным блокам TOAST-таблицы (toast_blks_read + toast_blks_hit);TOAST-Ix- статистика по полученным блокам индекса TOAST (tidx_blks_read + tidx_blks_hit).
Каждое статистическое поле в этой таблице разделено на два столбца:
Blks- количество полученных блоков для кучи, индекса, TOAST или индекса TOAST;%Total- количество полученных блоков для кучи, индекса, TOAST или индекса TOAST в процентах от общего количества полученных блоков во всем кластере.
Топ таблиц по количеству прочитанных блоков (Top tables by blocks read)
Таблица содержит топ таблиц, отсортированных по количеству прочитанных блоков. Таблицы в этом списке отсортированы по сумме прочитанных блоков для таблицы, ее индексов, TOAST-таблицы (если существует) и индекса TOAST (если существует). Этот раздел помогает обратить внимание на таблицы с чрезмерным количеством чтений блоков. Основано на данных представления pg_statio_all_tables.
Содержание таблицы:
DB- имя базы данных таблицы;Tablespace- имя табличного пространства, в котором расположена таблица;Schema- имя схемы таблицы;Table- имя таблицы;Heap- статистика по чтению блоков отношения (heap_blks_read);Ix- статистика по чтению блоков всех индексов отношения (idx_blks_read);TOAST- статистика по чтению блоков TOAST-таблицы (toast_blks_read);TOAST-Ix- статистика по чтению блоков индекса TOAST (tidx_blks_read);Hit(%)- количество блоков кучи, индексов, TOAST и индекса TOAST, полученных из общих буферов, в процентах от общего количества их блоков, полученных из общих буферов и файловой системы.
Каждая статистика чтения в этой таблице разделена на два столбца:
Blks- количество прочитанных блоков для кучи, индекса, TOAST или индекса TOAST;%Total- количество прочитанных блоков для кучи, индекса, TOAST или индекса TOAST в процентах от общего количества прочитанных блоков во всем кластере.
Топ DML-таблиц (Top DML tables)
Таблица содержит топ таблиц, отсортированных по количеству строк, затронутых DML-операциями, то есть сумма n_tup_ins, n_tup_upd и n_tup_del (включая TOAST-таблицы):
DB- имя базы данных таблицы;Tablespace- имя табличного пространства, в котором расположена таблица;Schema- имя схемы таблицы;Table- имя таблицы;Ins- количество вставленных строк (n_tup_ins);Upd- количество обновленных строк (включаяHOT) (n_tup_upd);Del- количество удаленных строк (n_tup_del);Upd(HOT)- количество строк, обновленных с помощьюHOT(n_tup_hot_upd);SeqScan- количество последовательных сканирований, выполненных для таблицы (seq_scan);SeqFet- количество живых строк, полученных при последовательных сканированиях (seq_tup_read);IxScan- количество инициированных индексных сканирований для этой таблицы (idx_scan);IxFet- количество живых строк, полученных с помощью индексных сканирований (idx_tup_fetch).
Топ таблиц по обновленным/удаленным кортежам (Top tables by updated/deleted tuples)
Таблица содержит топ таблиц, отсортированных по количеству операций, вызывающих нагрузку autovacuum, то есть сумма n_tup_upd и n_tup_del (включая TOAST-таблицы):
DB- имя базы данных таблицы;Tablespace- имя табличного пространства, в котором расположена таблица;Schema- имя схемы таблицы;Table- имя таблицы;Upd- количество обновленных строк (включаяHOT) (n_tup_upd);Upd(HOT)- количество строк, обновленных с помощью HOT (n_tup_hot_upd);Del- количество удаленных строк (n_tup_del);Vacuum- количество ручных операций vacuum для этой таблицы (не считаяVACUUM FULL) (vacuum_count);AutoVacuum- количество операцийvacuum, выполненных демономautovacuum(autovacuum_count);Analyze- количество ручных операцийanalyzeдля этой таблицы (analyze_count);AutoAnalyze- количество операцийanalyze, выполненных демономautovacuum(autoanalyze_count).
Рассмотрите возможность тонкой настройки параметров, связанных с vacuum, на основе представленной статистики по выполнению vacuum и analyze.
Топ таблиц по обновлениям кортежей на новых страницах (Top tables by new-page updated tuples)
Таблица содержит топ таблиц по количеству строк, обновленных таким образом, что последующая версия переходит на новую страницу кучи, оставляя исходную версию с полем t_ctid, указывающим на другую страницу кучи (это всегда не HOT обновления):
DB- имя базы данных таблицы;Tablespace- имя табличного пространства, в котором расположена таблица;Schema- имя схемы таблицы;Table- имя таблицы;NP Upd- количество строк, обновленных на новую страницу кучи;%Upd- количество обновлений на новую страницу в процентах от всех обновлений;Upd- количество обновленных строк (включаяHOTобновления);Upd(HOT)- количество строк, обновленных с помощьюHOT(то есть без отдельного обновления индекса).
Таблицы с наибольшим ростом (Top growing tables)
Таблица содержит топ таблиц, отсортированных по росту. Если размеры отношений не были собраны с помощью pg_relation_size(), рост таблицы будет рассчитан на основе поля pg_class.relpages. Это будет менее точно, поэтому такие значения будут указаны в квадратных скобках.
Содержание таблицы:
DB- имя базы данных таблицы;Tablespace- имя табличного пространства, в котором расположена таблица;Schema- имя схемы таблицы;Table- имя таблицы;Size- размер таблицы на момент последнего образца в периоде отчета;Growth- рост таблицы;Ins- количество вставленных строк (n_tup_ins);Upd- количество обновленных строк (включаяHOT) (n_tup_upd);Del- количество удаленных строк (n_tup_del);Upd(HOT)- количество строк, обновленных с помощьюHOT(n_tup_hot_upd).
Топ индексов по количеству полученных блоков (Top indexes by blocks fetched)
Полученный блок — это блок, обрабатываемый с диска (read) или из общих буферов (hit). Основано на данных представления pg_statio_all_indexes.
Содержание таблицы:
DB- имя базы данных таблицы;Tablespace- имя табличного пространства, в котором расположена таблица;Schema- имя схемы таблицы;Table- имя таблицы;Index- имя индекса;Scans- количество сканирований, выполненных по индексу (idx_scan);Blks- блоки, полученные из этого индекса (idx_blks_read + idx_blks_hit);%Total- блоки, полученные из этого индекса, в процентах от общего количества полученных блоков во всем кластере.
Топ индексов по количеству прочитанных блоков (Top indexes by blocks read)
Таблица содержит топ индексов, отсортированных по количеству прочитанных блоков. Основано на данных представления pg_statio_all_indexes:
DB- имя базы данных таблицы;Tablespace- имя табличного пространства, в котором расположена таблица;Schema- имя схемы таблицы;Table- имя таблицы;Index- имя индекса;Scans- количество сканирований, выполненных по индексу (idx_scan);Blk Reads- количество блоков, прочитанных с диска из этого индекса (idx_blks_read);%Total- количество прочитанных блоков из этого индекса в процентах от общего количества прочитанных блоков во всем кластере;Hits(%)- процент блоков индекса, полученных из кеша буферов, от общего количества полученных блоков индекса.
Топ индексов с наибольшим ростом (Top growing indexes)
Таблица содержит топ индексов, отсортированных по росту. Если размеры отношений не были собраны с помощью pg_relation_size(), оценка будет выполнена на основе поля pg_class.relpages. Это будет менее точно, поэтому такие значения будут указаны в квадратных скобках.
Содержание таблицы:
-
DB- имя базы данных таблицы; -
Tablespace- имя табличного пространства, в котором расположена таблица; -
Schema- имя схемы таблицы; -
Table- имя таблицы; -
Index- имя индекса; -
Index- статистика по индексу:Size- размер индекса на момент последнего образца в периоде отчета;Growth- рост индекса в течение периода отчета;
-
Table- статистика по основной таблице:Ins- количество вставленных строк в основную таблицу (n_tup_ins);Upd- количество обновленных строк в основной таблице (без HOT) (n_tup_upd - n_tup_hot_upd);Del- количество удаленных строк из основной таблицы (n_tup_del).
Неиспользуемые индексы (Unused indexes)
Таблица содержит индексы, по которым не было сканирований в течение периода отчета, отсортированные по DML-операциям над основными таблицами, требующими поддержки индекса (индексы ограничений исключены):
-
DB- имя базы данных таблицы; -
Tablespace- имя табличного пространства, в котором расположена таблица; -
Schema- имя схемы таблицы; -
Table- имя таблицы; -
Index- имя индекса; -
Index- статистика по индексу:Size- размер индекса на момент последнего образца в периоде отчета;Growth- рост индекса в течение периода отчета;
-
Table- статистика по основной таблице:Ins- количество вставленных строк в основную таблицу (n_tup_ins);Upd- количество обновленных строк в основной таблице (без HOT) (n_tup_upd - n_tup_hot_upd);Del- количество удаленных строк из основной таблицы (n_tup_del).
Статистика по пользовательским функциям (User function statistics)
Этот раздел отчета содержит топ функций в кластере на основе представления pg_stat_user_functions.
Топ функций по общему времени (Top functions by total time)
Таблица содержит топ функций, отсортированных по затраченному времени:
-
DB- имя базы данных функции; -
Schema- имя схемы функции; -
Function- имя функции; -
Executions- количество вызовов функции (calls); -
Time (s)- статистика времени выполнения функции в секундах:Total- общее время, затраченное на выполнение этой функции и всех других функций, вызванных ею (total_time);Self- общее время, затраченное только на выполнение этой функции, без учета вызванных функций (self_time);Mean- среднее время одного вызова функции;Mean self- среднее собственное время одного вызова функции.
Топ функций по количеству вызовов (Top functions by executions)
Таблица содержит топ функций, отсортированных по количеству вызовов:
-
DB- имя базы данных функции; -
Schema- имя схемы функции; -
Function- имя функции; -
Executions- количество вызовов функции (calls); -
Time (s)- статистика времени выполнения функции в секундах:Total- общее время, затраченное на выполнение этой функции и всех других функций, вызванных ею (total_time);Self- общее время, затраченное только на выполнение этой функции, без учета вызванных функций (self_time);Mean- среднее время одного вызова функции;Mean self- среднее собственное время одного вызова функции.
Топ триггерных функций по общему времени (Top trigger functions by total time)
Таблица содержит топ триггерных функций, отсортированных по затраченному времени:
-
DB- имя базы данных функции; -
Schema- имя схемы функции; -
Function- имя функции; -
Executions- количество вызовов функции (calls); -
Time (s)- статистика времени выполнения функции в секундах:Total- общее время, затраченное на выполнение этой функции и всех других функций, вызванных ею (total_time);Self- общее время, затраченное только на выполнение этой функции, без учета вызванных функций (self_time);Mean- среднее время одного вызова функции;Mean self- среднее собственное время одного вызова функции.
Статистика, связанная с vacuum (Vacuum-related stats)
Топ таблиц по операциям vacuum (Top tables by vacuum operations)
Таблица содержит топ таблиц, отсортированных по количеству выполненных операций vacuum (ручных и автоматических):
DB- имя базы данных таблицы;Tablespace- имя табличного пространства, в котором расположена таблица;Schema- имя схемы таблицы;Table- имя таблицы;Vacuum count- количество ручных операций vacuum для этой таблицы (не считаяVACUUM FULL) (vacuum_count);Autovacuum count- количество операцийvacuum, выполненных демономautovacuum(autovacuum_count);Ins- количество вставленных строк (n_tup_ins);Upd- количество обновленных строк (включаяHOT) (n_tup_upd);Del- количество удаленных строк (n_tup_del);Upd(HOT)- количество строк, обновленных с помощьюHOT(n_tup_hot_upd).
Топ таблиц по операциям analyze (Top tables by analyze operations)
Таблица содержит топ таблиц, отсортированных по количеству выполнений analyze (ручных и автоматических):
DB- имя базы данных таблицы;Tablespace- имя табличного пространства, в котором расположена таблица;Schema- имя схемы таблицы;Table- имя таблицы;Analyze count- количество ручных операцийanalyzeдля этой таблицы (analyze_count);Autoanalyze count- количество операцийanalyze, выполненных демономautovacuum(autoanalyze_count);Ins- количество вставленных строк (n_tup_ins);Upd- количество обновленных строк (включая HOT) (n_tup_upd);Del- количество удаленных строк (n_tup_del);Upd(HOT)- количество строк, обновленных с помощью HOT (n_tup_hot_upd).
Топ индексов по оценочной нагрузке vacuum (Top indexes by estimated vacuum load)
Этот раздел отчета предоставляет оценку неявной нагрузки vacuum, вызванной индексами таблиц. Здесь представлен топ индексов, отсортированных по количеству операций vacuum над основной таблицей, умноженному на размер индекса. Если размеры отношений не были собраны с помощью pg_relation_size(), оценка будет выполнена на основе поля pg_class.relpages. Это будет менее точно, поэтому такие значения будут указаны в квадратных скобках.
Содержание таблицы:
DB- имя базы данных таблицы;Tablespace- имя табличного пространства, в котором расположена таблица;Schema- имя схемы таблицы;Table- имя таблицы;Index- имя индекса;~Vacuum bytes- оценка нагрузкиvacuum, рассчитанная как(vacuum_count + autovacuum_count) - index_size;Vacuum cnt- количество ручных операцийvacuumдля этой таблицы (не считаяVACUUM FULL) (vacuum_count);Autovacuum cnt- количество операций vacuum, выполненных демономautovacuum(autovacuum_count);IX size- средний размер индекса в течение периода отчета;Relsize- средний размер отношения в течение периода отчета.
Топ таблиц по доле мертвых кортежей (Top tables by dead tuples ratio)
Этот раздел отчета содержит измененные таблицы с последним запуском vacuum. Статистика актуальна для последнего образца в периоде отчета. Основано на представлении pg_stat_all_tables. Если размеры отношений не были собраны с помощью pg_relation_size(), размер будет взят из поля pg_class.relpages. Это будет менее точно, поэтому такие значения будут указаны в квадратных скобках.
Топ таблиц размером 5 МБ и более, отсортированных по доле мертвых кортежей.
Содержание таблицы:
DB- имя базы данных таблицы;Schema- имя схемы таблицы;Table- имя таблицы;Live- оценочное количество живых строк (n_live_tup);Dead- оценочное количество мертвых строк (n_dead_tup);%Dead- мертвые строки таблицы в процентах от общего количества строк в таблице;Last AV- последнее время, когда таблица была очищена с помощьюautovacuum(last_autovacuum);Size- размер таблицы на момент последней выборки отчета.
Топ таблиц по доле измененных кортежей (Top tables by modified tuples ratio)
Этот раздел отчета содержит измененные таблицы с последним запуском vacuum. Статистика актуальна для последней выборки в периоде отчета. Основано на представлении pg_stat_all_tables. Если размеры отношений не были собраны с помощью pg_relation_size(), размер будет взят из поля pg_class.relpages. Это будет менее точно, поэтому такие значения будут указаны в квадратных скобках.
Топ таблиц размером 5 МБ и более, отсортированных по доле измененных кортежей.
Содержание таблицы:
DB- имя базы данных таблицы;Schema- имя схемы таблицы;Table- имя таблицы;Live- оценочное количество живых строк (n_live_tup);Dead- оценочное количество мертвых строк (n_dead_tup);Mod- оценочное количество строк, измененных с момента последнего сбора статистики таблицы (n_mod_since_analyze);%Mod- измененные строки таблицы в процентах от общего количества строк в таблице;Last AA- последнее время, когда по таблице была собрана статистика демономautovacuum;Size- размер таблицы на момент последней выборки отчета.
Параметры кластера в течение периода отчета (Cluster settings during the report interval)
Этот раздел отчета содержит параметры PostgreSQL GUC, значения функций version(), pg_postmaster_start_time(), pg_conf_load_time() и поле system_identifier функции pg_control_system() в течение периода отчета.
Содержание таблицы:
Setting- имя параметра;reset_val- полеreset_valпредставленияpg_settings. Жирным шрифтом выделяются параметры, измененные в течение периода отчета;Unit- единица измерения параметра;Source- конфигурационный файл, в котором определен параметр, номер строки после точки с запятой;Notes- это поле будет содержать временную метку образца, когда значение впервые было замечено в течение периода отчета.