Отчет о ходе выполнения#
Примечание
Эта страница переведена при помощи нейросети GigaChat.
PostgreSQL имеет возможность сообщать о ходе выполнения определенных команд во время их выполнения. В настоящее время только команды ANALYZE, CLUSTER, CREATE INDEX, VACUUM, COPY и BASE_BACKUP (т.е. команда репликации, которую pg_basebackup выдает для создания базовой резервной копии) поддерживают отчетность о ходе работы. Это может быть расширено в будущем.
Отчет о ходе выполнения ANALYZE#
Каждый раз, когда выполняется ANALYZE, представление pg_stat_progress_analyze будет содержать строку для каждого бэкенда, который в данный момент выполняет эту команду. Таблицы ниже описывают информацию, которая будет представлена, и предоставляют сведения о том, как ее интерпретировать.
Представление pg_stat_progress_analyze:
Тип столбца |
Описание |
|---|---|
|
Идентификатор процесса бэкенда |
|
OID базы данных, к которой подключен этот бэкенд |
|
Имя базы данных, к которой подключен этот бэкенд |
|
OID таблицы, которая анализируется |
|
Текущая фаза обработки |
|
Общее количество блоков кучи, которые будут выборочно проверены |
|
Количество проверенных блоков кучи |
|
Количество расширенной статистики |
|
Количество вычисленной расширенной статистики. Этот счетчик увеличивается только тогда, когда фаза равна |
|
Количество дочерних таблиц |
|
Количество отсканированных дочерних таблиц. Этот счетчик увеличивается только тогда, когда фаза равна |
|
OID дочерней таблицы, которая в данный момент сканируется. Это поле действительно только тогда, когда фаза находится в |
Фазы ANALYZE:
Фаза |
Описание |
|---|---|
|
Команда готовится начать сканирование кучи. Эта фаза должна быть очень краткой |
|
В настоящее время команда сканирует таблицу, указанную в |
|
Сейчас команда сканирует дочерние таблицы для получения примерных строк. Столбцы |
|
Команда вычисляет статистику из выборочных строк, полученных во время сканирования таблицы |
|
Команда вычисляет расширенную статистику из выборочных строк, полученных во время сканирования таблицы |
|
Команда обновляет |
Примечание
Обратите внимание, что при запуске ANALYZE на разделенной таблице анализируются также все ее разделы. В этом случае сначала сообщается о прогрессе ANALYZE для родительской таблицы, где собираются статистические данные по наследованию, а затем для каждого раздела.
Отчет о прогрессе CLUSTER#
Когда выполняется команда CLUSTER или VACUUM FULL, представление pg_stat_progress_cluster будет содержать строку для каждого бэкенда, который в настоящее время выполняет одну из этих команд. Таблицы ниже описывают информацию, которая будет сообщаться, и предоставляют сведения о том, как интерпретировать эту информацию.
Таблица Представление pg_stat_progress_cluster
Тип колонки |
Описание |
|---|---|
|
Идентификатор процесса бэкенда. |
|
OID базы данных, к которой подключен этот бэкенд. |
|
Имя базы данных, к которой подключен этот бэкенд. |
|
OID таблицы, подлежащей кластеризации. |
|
Выполняемая команда. Либо |
|
Текущая обрабатываемая фаза. |
|
Если таблица сканируется с использованием индекса, это OID используемого индекса; иначе — ноль. |
|
Количество кортежей кучи, прошедших сканирование. Этот счетчик увеличивается только тогда, когда фаза равна |
|
Количество записанных кортежей кучи. Этот счетчик увеличивается только тогда, когда фаза равна |
|
Общее количество блоков кучи в таблице. Это число указывается на начало |
|
Количество отсканированных блоков кучи. Этот счетчик увеличивается только тогда, когда фаза равна |
|
Количество перестроенных индексов. Этот счетчик увеличивается только тогда, когда фаза равна |
** Фазы CLUSTER и VACUUM FULL**
Фаза |
Описание |
|---|---|
|
Команда готовится начать сканирование кучи. Этот этап ожидается очень коротким. |
|
В данный момент команда выполняет последовательное сканирование таблицы. |
|
|
|
|
|
|
|
Команда в данный момент заменяет только что созданные файлы на свои места. |
|
Команда в текущий момент перестраивает индекс. |
|
Команда производит окончательную очистку. Когда этот этап будет завершен, завершится |
Отчет о ходе выполнения CREATE INDEX#
Когда CREATE INDEX или REINDEX выполняется, представление pg_stat_progress_create_index будет содержать одну строку для каждого бэкенда, который в данный момент создает индексы. В приведенных ниже таблицах описывается информация, которая будет представлена, и приводятся сведения о том, как ее интерпретировать.
Представление pg_stat_progress_create_index:
Тип столбца |
Описание |
|---|---|
|
Идентификатор процесса бэкенда |
|
OID базы данных, к которой подключен этот бэкенд |
|
Имя базы данных, к которой подключен этот бэкенд |
|
OID таблицы, для которой создается индекс |
|
OID индекса, который создается или повторно индексируется. Во время неконкурентного |
|
Команда, которая выполняется: |
|
Текущая фаза обработки при создании |
|
Общее количество замков, которые нужно ждать, если применимо |
|
Количество замков, за которыми уже следили |
|
Идентификатор процесса блокировки, который в данный момент ожидает обработки |
|
Общее количество блоков, которые должны быть обработаны в текущей фазе |
|
Количество блоков, уже обработанных в текущей фазе |
|
Общее количество кортежей, которые должны быть обработаны в текущей фазе |
|
Количество кортежей, уже обработанных на текущем этапе |
|
При создании индекса для разделенной таблицы этот столбец устанавливается на общее количество разделов, на которых должен быть создан индекс. Это поле является |
|
При создании индекса на разделенной таблице этот столбец устанавливается на количество разделов, для которых был создан индекс. Это поле установлено во время |
Фазы CREATE INDEX:
Фаза |
Описание |
|---|---|
|
|
|
|
|
Индекс создается методом доступа, специфичным для метода. На этом этапе методы доступа, поддерживающие отчетность о ходе работы, заполняют свои собственные данные о ходе работы, а подэтап указывается в этом столбце. Обычно |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Отчет о ходе выполнения VACUUM#
Всякий раз, когда VACUUM выполняется, представление pg_stat_progress_vacuum будет содержать одну строку для каждого бэкенда (включая рабочие процессы автоочистки), который в данный момент выполняет очистку. В приведенных ниже таблицах описывается информация, которая будет сообщаться, и приводятся сведения о том, как ее интерпретировать. Ход выполнения команд VACUUM FULL сообщается через pg_stat_progress_cluster, потому что оба VACUUM FULL и CLUSTER переписывают таблицу, тогда как обычная команда VACUUM только изменяет ее на месте.
Представление pg_stat_progress_vacuum:
Тип столбца |
Описание |
|---|---|
|
Идентификатор процесса бэкенда |
|
OID базы данных, к которой подключен этот бэкенд |
|
Имя базы данных, к которой подключен этот бэкенд |
|
OID таблицы, которая подвергается вакуумированию |
|
Текущая фаза обработки |
|
Общее количество блоков кучи в таблице. Это число сообщается с начала сканирования; блоки, добавленные позже, не будут (и нет необходимости) посещаться этим |
|
Количество блоков кучи, которые были проверены. Поскольку используется карта видимости, чтобы оптимизировать сканирование, некоторые блоки будут пропущены без проверки; пропущенные блоки включены в эту общую сумму, так что это число в конечном итоге станет равным |
|
Количество блоков кучи, которые были очищены. Если таблица не содержит индексов, этот счетчик увеличивается только тогда, когда фаза равна |
|
Количество завершенных циклов вакуумирования индекса |
|
Количество мертвых кортежей, которые можно хранить перед выполнением цикла вакуумирования индекса, основанного на maintenance_work_mem |
|
Объем данных «мертвых» кортежей, собранных со времени последнего цикла очистки индекса |
|
Количество идентификаторов мертвых кортежей, собранных с момента последнего цикла вакуумирования индекса |
|
Общее число индексов, которые будут очищены или убраны. Это число сообщается в начале фазы |
|
Число обработанных индексов. Этот счетчик увеличивается только во время фазы |
Фазы VACUUM
Фаза |
Описание |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Отчет о ходе выполнения базового резервного копирования#
Всякий раз, когда приложение, такое как pg_basebackup, создает базовое резервное копирование, представление pg_stat_progress_basebackup будет содержать строку для каждого процесса отправителя WAL, который в данный момент выполняет команду репликации BASE_BACKUP и передает потоковое резервное копирование. В приведенных ниже таблицах описывается информация, которая будет сообщаться, а также приводятся сведения о том, как ее интерпретировать.
Представление pg_stat_progress_basebackup:
Тип столбца |
Описание |
|---|---|
|
Идентификатор процесса отправителя WAL |
|
Текущая фаза обработки |
|
Общее количество данных, которые будут переданы потоком. Это оценивается и сообщается в начале фазы |
|
Количество переданных данных. Этот счетчик увеличивается только тогда, когда фаза равна |
|
Общее количество табличных пространств, которые будут передаваться потоком |
|
Количество табличных пространств, переданных потоком. Этот счетчик увеличивается только тогда, когда фаза находится в |
Фазы базового резервного копирования
Фаза |
Описание |
|---|---|
|
Процесс отправителя WAL готовится начать резервное копирование. Эта фаза должна быть очень краткой |
|
В данный момент процесс отправителя WAL выполняет |
|
Процесс отправителя WAL в настоящее время оценивает общее количество файлов базы данных, которые будут переданы в виде базовой резервной копии |
|
Процесс отправителя WAL в настоящее время передает файлы базы данных в качестве базовой резервной копии |
|
Процесс отправителя WAL в данный момент выполняет |
|
Процесс отправителя WAL в настоящий момент передает все журналы WAL, созданные во время резервного копирования. Эта фаза происходит после фазы |