×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

3.12.4. Отчеты о ходе выполнения

3.12.4.1. Отчет о ходе выполнения команды ANALYZE
3.12.4.2. Отчет о ходе выполнения команды CLUSTER
3.12.4.3. Мониторинг прогресса выполнения команды COPY
3.12.4.4. Отчет о ходе выполнения команды CREATE INDEX
3.12.4.5. Мониторинг хода выполнения операции VACUUM
3.12.4.6. Отчет о ходе базового резервного копирования

Digital Q.DataBase может предоставлять отчеты о ходе выполнения определенных команд непосредственно во время их работы. В настоящее время командами, поддерживающими отчетность о ходе выполнения, являются только ANALYZE , CLUSTER , CREATE INDEX , VACUUM , COPY , и BASE_BACKUP (т. е. команда репликации, которую pg_basebackup использует для создания базовой резервной копии). В будущем этот список может быть расширен.

3.12.4.1. Отчет о ходе выполнения команды ANALYZE #

Во время выполнения ANALYZE представление pg_stat_progress_analyze будет содержать по одной строке для каждого серверного процесса, выполняющего эту команду в данный момент. В таблицах ниже приведено описание передаваемой информации и указания по ее интерпретации.

Таблица 3.12.38. Представление pg_stat_progress_analyze

Тип столбца

Описание

pid integer

Идентификатор процесса серверного процесса.

datid oid

OID базы данных, к которой подключен данный серверный процесс.

datname name

Имя базы данных, к которой подключен данный серверный процесс.

relid oid

OID анализируемой таблицы.

фаза text

Текущая фаза обработки. См. Таблица 3.12.39 .

sample_blks_total bigint

Общее количество блоков кучи (heap blocks), для которых будет выполнена выборка.

sample_blks_scanned bigint

Количество просканированных блоков кучи.

ext_stats_total bigint

Количество объектов расширенной статистики.

ext_stats_computed bigint

Количество вычисленных объектов расширенной статистики. Данный счётчик увеличивается только в том случае, когда текущей фазой является вычисление расширенной статистики .

child_tables_total bigint

Количество дочерних таблиц.

child_tables_done bigint

Количество просканированных дочерних таблиц. Данный счётчик увеличивается только в том случае, когда текущей фазой является получение выборочных строк из наследуемых таблиц .

current_child_table_relid oid

OID сканируемой в данный момент дочерней таблицы. Данное поле информативно только тогда, когда текущей фазой является получение выборочных строк из наследуемых таблиц .


Таблица 3.12.39. Фазы выполнения команды ANALYZE

ФазаОписание
инициализация Команда готовится к началу сканирования кучи (heap). Данная фаза, как ожидается, будет очень кратковременной.
сбор строк выборки В данный момент команда выполняет сканирование таблицы, указанной в relid для получения строк выборки.
получение выборочных строк из наследуемых таблиц В данный момент команда выполняет сканирование дочерних таблиц для получения строк выборки. Столбцы child_tables_total , child_tables_done , и current_child_table_relid содержат информацию о прогрессе для данной фазы.
вычисление статистики Команда вычисляет статистику на основе строк выборки, полученных в процессе сканирования таблицы.
вычисление расширенной статистики Команда вычисляет расширенную статистику на основе строк выборки, полученных в процессе сканирования таблицы.
завершение процесса выполнения команды ANALYZE Команда выполняет обновление pg_class . Когда эта фаза будет завершена, ANALYZE завершится.

Примечание

Обратите внимание, что когда ANALYZE выполняется для секционированной таблицы, все её секции также анализируются рекурсивно. В этом случае, ANALYZE отчет о ходе выполнения сначала выводится для родительской таблицы (при этом собирается статистика наследования), а затем последовательно для каждой секции.

3.12.4.2. Отчет о ходе выполнения команды CLUSTER #

Во время выполнения CLUSTER или VACUUM FULL выполняется, представление pg_stat_progress_cluster будет содержать строку для каждого серверного процесса, выполняющего в данный момент одну из этих команд. В таблицах ниже приведено описание предоставляемой информации и даны рекомендации по её интерпретации.

Таблица 3.12.40. pg_stat_progress_cluster Представление

Тип столбца

Описание

pid integer

Идентификатор процесса серверного процесса.

datid oid

OID базы данных, к которой подключен данный серверный процесс.

datname name

Имя базы данных, к которой подключен данный серверный процесс.

relid oid

OID таблицы, подвергаемой кластеризации.

команда text

Выполняемая команда. Либо CLUSTER или VACUUM FULL .

фаза text

Текущая фаза обработки. См. Таблица 3.12.41 .

cluster_index_relid oid

Если таблица сканируется с использованием индекса, это OID используемого индекса; в противном случае значение равно нулю.

heap_tuples_scanned bigint

Количество просканированных кортежей кучи (heap tuples). Этот счетчик увеличивается только в том случае, если фаза имеет значение seq scanning heap , index scanning heap или writing new heap .

heap_tuples_written bigint

Количество записанных кортежей кучи. Этот счетчик увеличивается только в том случае, если фаза имеет значение seq scanning heap , index scanning heap или writing new heap .

heap_blks_total bigint

Общее количество блоков кучи в таблице. Данное значение сообщается по состоянию на начало seq scanning heap .

heap_blks_scanned bigint

Количество отсканированных блоков кучи. Этот счетчик увеличивается только в том случае, если текущей фазой является seq scanning heap .

index_rebuild_count bigint

Количество перестроенных индексов. Этот счетчик увеличивается только тогда, когда фаза соответствует rebuilding index .


Таблица 3.12.41. Фазы выполнения команд CLUSTER и VACUUM FULL

ФазаОписание
инициализация Команда готовится к началу сканирования кучи (heap). Данная фаза, как ожидается, будет кратковременным.
seq scanning heap Команда в настоящее время выполняет последовательное сканирование таблицы (sequential scan).
index scanning heap CLUSTER в настоящее время выполняет сканирование таблицы по индексу (index scan).
сортировка кортежей CLUSTER в данный момент выполняет сортировку кортежей.
writing new heap CLUSTER в данный момент выполняет запись в новую кучу (heap).
замена файлов отношений Команда в данный момент выполняет подстановку вновь созданных файлов.
rebuilding index Команда в данный момент выполняет пересоздание индекса.
выполнение финальной очистки Команда выполняет финальную очистку. Когда данная фаза будет завершена, CLUSTER или VACUUM FULL будет завершена.

3.12.4.3. Мониторинг прогресса выполнения команды COPY #

Во время выполнения COPY представление pg_stat_progress_copy представление будет содержать по одной строке для каждого серверного процесса, выполняющего в данный момент команду COPY . В таблице ниже описана предоставляемая информация, а также приведены сведения о способах её интерпретации.

Таблица 3.12.42. pg_stat_progress_copy Представление

Тип столбца

Описание

pid integer

Идентификатор процесса серверного процесса.

datid oid

OID базы данных, к которой подключен данный серверный процесс.

datname name

Имя базы данных, к которой подключен данный серверный процесс.

relid oid

OID таблицы, над которой выполняется COPY команда. Данный параметр принимает значение 0 при копировании из SELECT запроса.

команда text

Выполняемая команда: COPY FROM , или COPY TO .

тип text

Тип ввода-вывода, из которого считываются или в который записываются данные: FILE , PROGRAM , PIPE (для COPY FROM STDIN и COPY TO STDOUT ), или CALLBACK (используется, например, в ходе начальной синхронизации таблиц при логической репликации).

bytes_processed bigint

Количество байтов, уже обработанных COPY командой.

bytes_total bigint

Размер исходного файла для COPY FROM команды в байтах. Установлено значение 0 если недоступно.

tuples_processed bigint

Количество кортежей, уже обработанных операцией COPY командой.

tuples_excluded bigint

Количество кортежей, которые не были обработаны, так как были исключены предложением WHERE предложения COPY командой.

tuples_skipped bigint

Количество кортежей, пропущенных из-за некорректного формата данных. Значение этого счетчика увеличивается только при указании значения, отличного от stop для ON_ERROR параметра.


3.12.4.4. Отчет о ходе выполнения команды CREATE INDEX #

Во время выполнения CREATE INDEX или REINDEX представление pg_stat_progress_create_index представление будет содержать по одной строке для каждого серверного процесса, выполняющего в данный момент создание индексов. В приведенных ниже таблицах описывается структура отчетных данных и способы их интерпретации.

Таблица 3.12.43. pg_stat_progress_create_index Представление

Тип столбца

Описание

pid integer

Идентификатор процесса серверного процесса, создающего индексы.

datid oid

OID базы данных, к которой подключен данный серверный процесс.

datname name

Имя базы данных, к которой подключен данный серверный процесс.

relid oid

OID таблицы, для которой создается индекс.

index_relid oid

OID индекса, который создается или перестраивается. В ходе неконкурентной CREATE INDEX , это 0.

команда text

Конкретный тип команды: CREATE INDEX , CREATE INDEX CONCURRENTLY , REINDEX , или REINDEX CONCURRENTLY .

фаза text

Текущая фаза процесса создания индекса. См. Таблица 3.12.44 .

lockers_total bigint

Общее количество блокирующих процессов, ожидание которых требуется (если применимо).

lockers_done bigint

Количество блокирующих процессов, ожидание которых уже завершено.

current_locker_pid bigint

Идентификатор процесса блокировщика, ожидаемого в данный момент.

blocks_total bigint

Общее количество блоков, подлежащих обработке на текущей фазе.

blocks_done bigint

Количество блоков, уже обработанных на текущей фазе.

tuples_total bigint

Общее количество кортежей, подлежащих обработке на текущей фазе.

tuples_done bigint

Количество кортежей, уже обработанных на текущей фазе.

partitions_total bigint

Общее количество секций, для которых должен быть создан индекс, или к которым он должен быть присоединен, включая как прямые, так и косвенные секции. 0 в ходе REINDEX , или когда индекс не является секционированным.

partitions_done bigint

Количество секций, для которых индекс уже был создан или к которым он должен быть присоединен, включая как прямые, так и косвенные секции. 0 в ходе REINDEX , или когда индекс не является секционированным.


Таблица 3.12.44. Фазы выполнения CREATE INDEX

ФазаОписание
инициализация CREATE INDEX или REINDEX подготовка к созданию индекса. Данная фаза должна быть кратковременной.
ожидание завершения процессов записи перед построением CREATE INDEX CONCURRENTLY или REINDEX CONCURRENTLY ожидает завершения транзакций с блокировками на запись, которые потенциально могут обращаться к таблице. Эта фаза пропускается, если не используется режим CONCURRENTLY. Столбцы lockers_total , lockers_done и current_locker_pid содержат сведения о ходе выполнения для данной фазы.
построение индекса Индекс строится кодом, специфичным для метода доступа. На данной фазе методы доступа, поддерживающие отчетность о ходе выполнения, заполняют собственные данные, а подфаза указывается в данном столбце. Как правило, blocks_total и blocks_done будет содержать данные о ходе выполнения, а также, возможно, tuples_total и tuples_done .
ожидание завершения процессов записи перед проверкой CREATE INDEX CONCURRENTLY или REINDEX CONCURRENTLY ожидает завершения транзакций с блокировками на запись, которые потенциально могут изменять данные в таблице. Эта фаза пропускается, если не используется режим CONCURRENTLY. Столбцы lockers_total , lockers_done и current_locker_pid содержат сведения о ходе выполнения для данной фазы.
проверка индекса: сканирование индекса CREATE INDEX CONCURRENTLY выполняет сканирование индекса для поиска кортежей, подлежащих проверке. Эта фаза пропускается, если не используется режим CONCURRENTLY. Столбцы blocks_total (соответствует общему размеру индекса) и blocks_done содержат сведения о прогрессе выполнения данной фазы.
проверка индекса: сортировка кортежей CREATE INDEX CONCURRENTLY выполняет сортировку результатов фазы сканирования индекса.
проверка индекса: сканирование таблицы CREATE INDEX CONCURRENTLY выполняет сканирование таблицы для проверки кортежей индекса, собранных на двух предыдущих фазах. Эта фаза пропускается, если не используется режим CONCURRENTLY. Столбцы blocks_total (соответствует общему размеру таблицы) и blocks_done содержат сведения о прогрессе выполнения данной фазы.
ожидание освобождения старых снимков данных CREATE INDEX CONCURRENTLY или REINDEX CONCURRENTLY ожидает завершения транзакций которые потенциально могут обращаться к таблице. Данная фаза пропускается, если не используется параллельный режим (concurrent mode). Столбцы lockers_total , lockers_done и current_locker_pid содержат сведения о ходе выполнения для данной фазы.
ожидание читающих процессов перед пометкой как недействительного REINDEX CONCURRENTLY ожидает завершения транзакций с блокировками на чтение таблицы до их завершения, перед пометкой старого индекса как недействительного (dead). Эта фаза пропускается, если не используется режим CONCURRENTLY. Столбцы lockers_total , lockers_done и current_locker_pid содержат сведения о ходе выполнения для данной фазы.
ожидание читающих процессов перед удалением REINDEX CONCURRENTLY ожидает завершения транзакций с блокировками на чтение таблицы до их завершения, перед удалением старого индекса. Эта фаза пропускается, если не используется режим CONCURRENTLY. Столбцы lockers_total , lockers_done и current_locker_pid содержат сведения о ходе выполнения для данной фазы.

3.12.4.5. Мониторинг хода выполнения операции VACUUM #

Во время выполнения VACUUM представление pg_stat_progress_vacuum представление будет содержать по одной строке для каждого обслуживающего процесса (включая рабочие процессы автоочистки (autovacuum worker processes)), который в данный момент выполняет очистку. В нижеследующих таблицах описывается предоставляемая информация и приводятся сведения о её интерпретации. Ход выполнения для VACUUM FULL сообщается с помощью pg_stat_progress_cluster так как обе команды VACUUM FULL и CLUSTER перезаписывают таблицу, тогда как обычная операция VACUUM изменяет его только на месте. См. Раздел 3.12.4.2 .

Таблица 3.12.45. pg_stat_progress_vacuum Представление

Тип столбца

Описание

pid integer

Идентификатор процесса серверного процесса.

datid oid

OID базы данных, к которой подключен данный серверный процесс.

datname name

Имя базы данных, к которой подключен данный серверный процесс.

relid oid

OID очищаемой таблицы.

фаза text

Текущая фаза выполнения операции очистки. См. Таблица 3.12.46 .

heap_blks_total bigint

Общее количество блоков кучи в таблице. Данное значение сообщается на момент начала сканирования; блоки, добавленные позже, не будут (и не должны быть) затронуты этой операцией VACUUM .

heap_blks_scanned bigint

Количество просканированных блоков кучи (heap blocks). Так как visibility map используется для оптимизации сканирования, некоторые блоки пропускаются без проверки; пропущенные блоки учитываются в этом итоге, поэтому в конечном счете данное значение станет равным heap_blks_total по завершении процесса очистки (vacuum). Данный счетчик увеличивается только в том случае, если текущей фазой является scanning heap .

heap_blks_vacuumed bigint

Количество очищенных блоков кучи (heap blocks). Если у таблицы имеются индексы, этот счетчик увеличивается только в том случае, если текущей фазой является vacuuming heap . Блоки, не содержащие «мертвых» кортежей (dead tuples), пропускаются, поэтому значение счетчика может иногда увеличиваться скачкообразно.

index_vacuum_count bigint

Количество завершенных циклов очистки индексов.

max_dead_tuple_bytes bigint

Объем данных «мертвых» кортежей, который может быть накоплен до необходимости выполнения цикла очистки индексов, на основании maintenance_work_mem .

dead_tuple_bytes bigint

Объем данных «мертвых» кортежей, собранных с момента последнего цикла очистки индексов.

num_dead_item_ids bigint

Количество идентификаторов «мертвых» элементов, собранных с момента последнего цикла очистки индексов.

indexes_total bigint

Общее количество индексов, которые будут подвергнуты очистке. Это значение фиксируется в начале vacuuming indexes фазы или очистка индексов фаза.

indexes_processed bigint

Количество обработанных индексов. Данный счётчик увеличивается только в том случае, когда текущей фазой является vacuuming indexes или очистка индексов .


Таблица 3.12.46. Фазы процесса VACUUM

ФазаОписание
инициализация VACUUM подготавливается к началу сканирования кучи (heap). Данная фаза обычно кратковременна.
scanning heap VACUUM в настоящее время сканирует кучу (heap). Процесс выполняет очистку и дефрагментацию каждой страницы при необходимости, а также, возможно, операции заморозки объектов. Столбец heap_blks_scanned может быть использован для мониторинга хода сканирования.
vacuuming indexes VACUUM в данный момент выполняет очистку индексов. Если таблица содержит какие-либо индексы, это будет происходить как минимум один раз за цикл VACUUM после того, как куча будет полностью просканирована. Это может происходить несколько раз за один цикл очистки если maintenance_work_mem (или, в случае процесса autovacuum, autovacuum_work_mem если задано) недостаточно для хранения количества обнаруженных «мертвых» кортежей.
vacuuming heap VACUUM в настоящий момент выполняет очистку (vacuuming) основной области хранения (heap). Очистка основной области отличается от сканирования основной области и выполняется после каждого этапа очистки индексов. Если heap_blks_scanned меньше чем heap_blks_total , система вернется к сканированию основной области после завершения данной фазы; в противном случае начнется очистка индексов после завершения данной фазы.
очистка индексов VACUUM в настоящий момент выполняет очистку индексов. Это происходит после того, как основная область была полностью просканирована и завершена очистка всех индексов и основной области.
усечение основной области (heap) VACUUM в настоящий момент выполняет усечение основной области (heap) для возврата пустых страниц в конце отношения операционной системе. Данная операция выполняется после очистки индексов.
выполнение финальной очистки VACUUM выполняет финальную очистку. На данном этапе VACUUM осуществляется очистка карты свободного пространства (free space map) и обновление статистики в pg_class , и передают статистику в систему кумулятивной статистики. По завершении этой фазы, VACUUM будет завершена.

3.12.4.6. Отчет о ходе базового резервного копирования #

В тех случаях, когда приложение, подобное pg_basebackup выполняет базовое резервное копирование, данное pg_stat_progress_basebackup представление будет содержать строку для каждого процесса передачи WAL (WAL sender process), который в данный момент выполняет BASE_BACKUP команду репликации и осуществляет потоковую передачу резервной копии. В приведенных ниже таблицах описывается предоставляемая информация и поясняется порядок ее интерпретации.

Таблица 3.12.47. pg_stat_progress_basebackup Представление

Тип столбца

Описание

pid integer

Идентификатор процесса передачи WAL (WAL sender process).

фаза text

Текущая фаза обработки. См. Таблица 3.12.48 .

backup_total bigint

Общий объем данных, подлежащих потоковой передаче. Это значение является оценочным и фиксируется на момент начала потоковой передачи файлов базы данных фазы. Обратите внимание, что это лишь приблизительная оценка, так как база данных может измениться в ходе потоковой передачи файлов базы данных данной фазы и записи в журнале WAL могут быть включены в резервную копию позже. Это всегда то же значение, что и backup_streamed как только объем переданных данных превысит расчетный общий размер. Если оценка размера отключена в pg_basebackup (т. е. --no-estimate-size указана данная опция), это NULL .

backup_streamed bigint

Объем переданных данных. Данный счётчик увеличивается только в том случае, когда текущей фазой является потоковой передачи файлов базы данных или передача файлов WAL .

tablespaces_total bigint

Общее количество табличных пространств, которые будут переданы.

tablespaces_streamed bigint

Количество переданных табличных пространств. Этот счетчик увеличивается только тогда, когда фаза находится в состоянии потоковой передачи файлов базы данных .


Таблица 3.12.48. Base Backup Phases

ФазаОписание
инициализация Процесс передачи WAL (WAL sender) готовится к началу резервного копирования. Ожидается, что эта фаза будет очень кратковременной.
ожидание завершения контрольной точки (checkpoint) Процесс передачи WAL (WAL sender) в данный момент выполняет pg_backup_start подготовка к выполнению базового резервного копирования и ожидание завершения контрольной точки начала резервного копирования.
оценка размера резервной копии В настоящее время процесс передачи журнала WAL (WAL sender process) выполняет оценку общего объема файлов базы данных, которые будут переданы в виде базовой резервной копии.
потоковой передачи файлов базы данных В настоящее время процесс передачи журнала WAL (WAL sender process) выполняет потоковую передачу файлов базы данных в качестве базовой резервной копии.
ожидание завершения архивации журнала WAL Процесс передачи WAL (WAL sender) в данный момент выполняет pg_backup_stop для завершения резервного копирования, и ожидание успешной архивации всех файлов журнала WAL, необходимых для базовой резервной копии, для завершения этой операции. Если любой из параметров --wal-method=none или --wal-method=stream указан в pg_basebackup , резервное копирование завершится по окончании этой фазы.
передача файлов WAL Процесс передачи журнала WAL (WAL sender) в настоящее время передает все сегменты журнала WAL сгенерированные в ходе резервного копирования. Данная фаза наступает после ожидание завершения архивации журнала WAL завершения фазы, если задан параметр --wal-method=fetch указан в pg_basebackup . Резервное копирование будет завершено по окончании этой фазы.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению