Страница /Планы

Назначение - мониторинг вызывающих подозрения запросов в различных разделах.

Строки на вкладках данный страницы при нажатии отображают состав или модель шаблона:

Порядок перехода на страницу /Планы

Переход на данную страницу осуществляется через выбор количества шаблонов:

Панель управления страницей

Панель управления страницей содержит следующие элементы (согласно нумерации на рисунке выше):

  1. Бургер-меню панели управления страницей;

  2. Адрес страницы в pg_monitor;

  3. панель выбора режима;

  4. Панель фильтра.

Вкладка «по шаблонам»

Назначение - отображает перечень шаблонов и их ключевые параметры.

По нажатию на строку отображается модель шаблона.

Состав страницы:

  1. "шаблонов"

    Количество шаблонов, к которым можно свести проблемные проблемные запросы данного хоста.

    При нажатии открывается Страница /Планы.

  2. создание ссылки на задачу

    Кнопка создания ссылки на задачу (task_link_button )

    Привязывает данный шаблона к системе учета, отслеживания ошибок (например, jira), pg_monitor позволит перейти на указанную для данного шаблона задачу.

    Нажатие на кнопку task_link_button вызывает окно создания ссылки на задачу: task_link_button-1

  3. "app"

    Имя приложения.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  4. "кол-во"

    Количество.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  5. "sum.мс"

    Суммарное время запросов в милисекундах.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  6. "avg.мс"

    Среднее время запроса в милисекундах.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  7. "buf.mem"

    Запросы, buffers которых по данному шаблону считались читающимися из памяти.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Наведение на значение отображет тултип со значнием объема.

  8. "buf:dsk"

    Запросы, buffers которых по данному шаблону считались читающимися с диска.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Наведение на значение отображет тултип со значнием объема.

  9. %

    Отношение чтения с диска к общему количество (лучше, когда меньше).

  10. "last"

    Время последнего запроса.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на значение переводит на страницу запроса из архива.

  11. "Timeline"

    График интенсивности появления проблемных запросов, разбитый на 24 часа.

Вкладка «по моделям»

Назначение - отображает перечень моделей запросов и их ключевые параметры.

Состав страницы:

  1. "Модель_шаблон"

    Имена шаблонов.

  2. "app"

    Имя приложения.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  3. "ptr" (pattern)

    Отображает количество шаблонов. При нажатии раскрывает список шаблонов. Если паттерн единственный, то отображается имя шаблона.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на имя шаблона переводит на страницу «шаблоны».

  4. "кол-во"

    Количество.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  5. "sum.мс"

    Суммарное время запросов в милисекундах.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  6. "avg.мс"

    Среднее время запроса в милисекундах.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  7. "buf.mem"

    Запросы, buffers которых по данному шаблону считались читающимися из памяти.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Наведение на значение отображет тултип со значнием объема.

  8. "buf:dsk"

    Запросы, buffers которых по данному шаблону считались читающимися с диска.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Наведение на значение отображет тултип со значнием объема.

  9. %

    Отношение чтения с диска к общему количество (лучше, когда меньше).

  10. "last"

    Время последнего запроса.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на значение переводит на страницу запроса из архива.

  11. "Timeline"

    График интенсивности появления проблемных запросов, разбитый на 24 часа.

Графическое отображение модели запроса

Вкладка «по приложениям»

Назначение - группировка проблемных запросов по приложениям (методам). При нажатии на строку с выбранным методом раскрывается его шаблон, если для данного метода он единственный.

Если шаблонов несколько, то при нажатии отображается сначала список шаблонов.

Затем можно получить отображения шаблона, нажав на строку из списка шаблонов.

Состав страницы:

  1. "Метод_шаблон(ы)"

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  2. "ptr" (pattern)

    Отображает количество шаблонов. При нажатии раскрывает список шаблонов. Если паттерн единственный, то отображается имя шаблона.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на имя шаблона переводит на страницу «шаблоны».

  3. создание ссылки на задачу

    Кнопка создания ссылки на задачу (task_link_button )

    Привязывает данный шаблона к системе учета, отслеживания ошибок (например, jira), pg_monitor позволит перейти на указанную для данного шаблона задачу.

    Нажатие на кнопку task_link_button вызывает окно создания ссылки на задачу: task_link_button-1

  4. "кол-во"

    Количество.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  5. "sum.мс"

    Суммарное время запросов в милисекундах.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  6. "avg.мс"

    Среднее время запроса в милисекундах.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  7. "buf.mem"

    Запросы, buffers которых по данному шаблону считались читающимися из памяти.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Наведение на значение отображет тултип со значнием объема.

  8. "buf:dsk"

    Запросы, buffers которых по данному шаблону считались читающимися с диска.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Наведение на значение отображет тултип со значнием объема.

  9. %

    Отношение чтения с диска к общему количество (лучше, когда меньше).

  10. "last"

    Время последнего запроса.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на значение переводит на страницу запроса из архива.

  11. "Timeline"

    График интенсивности появления проблемных запросов, разбитый на 24 часа.

Вкладка «по объектам базы (операции)»

Назначение – перебирает все экземпляры планов по шаблонам данного узла и пытается подобрать к каждому из них наиболее подходящий индекс, группирует эту информацию и строит трекинг. Количество записей и количество проходов.

Нажатие на кнопку узел_button переводит на страницу /узел.

Состав страницы:

  1. "Тип узла"

    Нажатие на заголовок сортирует вкладку по типам узла.

    Нажатие на название шаблона переводит на страницу узла.

    Столбец отображает основные операции, отображаемые в планах выполнения запросов СУБД:

    Seq Scan

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

    Index Scan

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

    Bitmap Index Scan

    В то время как Index Scan извлекает один указатель кортежа за раз из индекса и немедленно переходит к этому кортежу в таблице, Bitmap Index Scan извлекает все указатели кортежей из индекса за один раз, сортирует их, используя структуру данных «битовая карта (bitmap)» в оперативной памяти, а затем просматривает кортежи таблиц в порядке физического расположения кортежей.

    Merge Join

    Соединение слиянием объединяет два отсортированных списка. Обе стороны объединения должны быть предварительно отсортированы.

    Nested Loops

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

    Hash Join

    Хеш-соединение загружает записи-кандидаты с одной стороны соединения в хеш-таблицу, которая затем проверяется для каждой строки с другой стороны соединения. Операция используется всегда, когда невозможно применить другие виды соединения: если соединяемые наборы данных достаточно велики и/или наборы данных не упорядочены по столбцам соединения.

    Sort

    Сортирует набор по столбцам, указанным в Sort Key. Операция сортировки требует больших объемов памяти для материализации промежуточного результата.

    Aggregate

    Появляется в плане, если в запросе есть агрегатная функция, используемая для вычисления отдельных результатов из нескольких входных строк: COUNT, SUM, AVG, MAX, MIN и прочие.

    GroupAggregate

    Группирует предварительно отсортированный набор в соответствии с предложением GROUP BY. Эта операция не буферизует промежуточный результат.

    HashAggregate

    Использует временную хэш-таблицу для группировки записей. Операция HashAggregate не требует предварительно отсортированного набора данных, вместо этого она использует большие объемы памяти для материализации промежуточного результата. Вывод не упорядочен каким-либо значимым образом.

    Filter

    Применяет фильтр к набору строк.

    Limit

    Прерывает выполение операций, когда было выбрано нужное количество строк.

    Append

    Запускает множество субопераций и возвращает все возвращенные ими строки в виде общего результата. Используется в запросах, содержащих UNION или UNION ALL.

    HashSetOp

    Операция используется операциями INTERSECT и EXCEPT (с опциональным модификатором ALL). Она работает следующим образом: запускает субоперации Append для пары подзапросов, а затем, на основании результата и опционального модификатора ALL, решает, какие строки нужно вернуть.

    Materialize

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

    CTE Scan

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

    SubPlan

    Операция означает подзапрос, в котором есть ссылки на основной запрос. Вызывается, чтобы посчитать данные из подзапроса, которые зависят от текущей строки.

    InitPlan

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

    Subquery Scan

    Операция означает подзапрос, входящий в UNION.

  2. "таблица"

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  3. "индекс"

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  4. "ptr" (pattern)

    Отображает количество шаблонов. При нажатии раскрывает список шаблонов. Если паттерн единственный, то отображается имя шаблона.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на имя шаблона переводит на страницу «шаблоны».

  5. "кол-во"

    Количество.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  6. "loops"

    Суммарное для узла количество простых циклов типа pg_m_glossary-LOOP.

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  7. "loops avg"

    Среднее для узла количество простых циклов типа pg_m_glossary-LOOP.

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  8. "rows" (количество строк)

    Количество строк, возвращаемых узлом

    строка

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

  9. "rows_avg"

    Среднее количество строк.

  10. "RRbF"

    Rows Removed by Filter (Строки удалены фильтром)

    Нажатие на заголовок сортирует вкладку по данному столбцу.

    Отображает статистическую информацию, которую можно увидеть в плане выполнения запроса (query execution plan). Это значение указывает на количество строк, которые были удалены после применения фильтра в операции сканирования или присоединения таблицы.

    Когда СУБД выполняет запрос, он применяет фильтры к данным для выбора только тех строк, которые удовлетворяют заданным условиям. «Rows Removed by Filter» отображает количество строк, которые были отфильтрованы и удалены после применения этих условий. Это значение может быть полезно для анализа производительности запроса и оптимизации его выполнения.

    Обратите внимание, что «Rows Removed by Filter» не указывает на общее количество строк, выбранных или возвращенных в результате выполнения запроса. RRbF относится только к количеству строк, которые были удалены после применения фильтра.

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

  11. кнопка [Узел]

    узел_button

    Переводит на страницу /узел.

  12. "RRbF_avg"

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  13. "RRbF_percent"

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  14. "last"

    Время последнего запроса.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на значение переводит на страницу запроса из архива.

  15. "Timeline"

    График интенсивности появления проблемных запросов, разбитый на 24 часа.

Вкладка «по объектам базы (ресурсы)»

Назначение – время объем данных.

Состав страницы:

  1. "Тип узла"

    Нажатие на заголовок сортирует вкладку по типам узла.

    Нажатие на название шаблона переводит на страницу узла.

    Столбец отображает основные операции, отображаемые в планах выполнения запросов СУБД:

    Seq Scan

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

    Index Scan

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

    Bitmap Index Scan

    В то время как Index Scan извлекает один указатель кортежа за раз из индекса и немедленно переходит к этому кортежу в таблице, Bitmap Index Scan извлекает все указатели кортежей из индекса за один раз, сортирует их, используя структуру данных «битовая карта (bitmap)» в оперативной памяти, а затем просматривает кортежи таблиц в порядке физического расположения кортежей.

    Merge Join

    Соединение слиянием объединяет два отсортированных списка. Обе стороны объединения должны быть предварительно отсортированы.

    Nested Loops

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

    Hash Join

    Хеш-соединение загружает записи-кандидаты с одной стороны соединения в хеш-таблицу, которая затем проверяется для каждой строки с другой стороны соединения. Операция используется всегда, когда невозможно применить другие виды соединения: если соединяемые наборы данных достаточно велики и/или наборы данных не упорядочены по столбцам соединения.

    Sort

    Сортирует набор по столбцам, указанным в Sort Key. Операция сортировки требует больших объемов памяти для материализации промежуточного результата.

    Aggregate

    Появляется в плане, если в запросе есть агрегатная функция, используемая для вычисления отдельных результатов из нескольких входных строк: COUNT, SUM, AVG, MAX, MIN и прочие.

    GroupAggregate

    Группирует предварительно отсортированный набор в соответствии с предложением GROUP BY. Эта операция не буферизует промежуточный результат.

    HashAggregate

    Использует временную хэш-таблицу для группировки записей. Операция HashAggregate не требует предварительно отсортированного набора данных, вместо этого она использует большие объемы памяти для материализации промежуточного результата. Вывод не упорядочен каким-либо значимым образом.

    Filter

    Применяет фильтр к набору строк.

    Limit

    Прерывает выполение операций, когда было выбрано нужное количество строк.

    Append

    Запускает множество субопераций и возвращает все возвращенные ими строки в виде общего результата. Используется в запросах, содержащих UNION или UNION ALL.

    HashSetOp

    Операция используется операциями INTERSECT и EXCEPT (с опциональным модификатором ALL). Она работает следующим образом: запускает субоперации Append для пары подзапросов, а затем, на основании результата и опционального модификатора ALL, решает, какие строки нужно вернуть.

    Materialize

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

    CTE Scan

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

    SubPlan

    Операция означает подзапрос, в котором есть ссылки на основной запрос. Вызывается, чтобы посчитать данные из подзапроса, которые зависят от текущей строки.

    InitPlan

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

    Subquery Scan

    Операция означает подзапрос, входящий в UNION.

  2. "таблица"

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  3. "индекс"

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  4. "ptr" (pattern)

    Отображает количество шаблонов. При нажатии раскрывает список шаблонов. Если паттерн единственный, то отображается имя шаблона.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на имя шаблона переводит на страницу «шаблоны».

  5. кнопка [Узел]

    узел_button

    Переводит на страницу /узел.

  6. "кол-во"

    Количество.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  7. "sum.мс"

    Суммарное время запросов в милисекундах.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  8. "avg.мс"

    Среднее время запроса в милисекундах.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  9. "buf.mem"

    Запросы, buffers которых по данному шаблону считались читающимися из памяти.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Наведение на значение отображет тултип со значнием объема.

  10. "buf:dsk"

    Запросы, buffers которых по данному шаблону считались читающимися с диска.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Наведение на значение отображет тултип со значнием объема.

  11. "last"

    Время последнего запроса.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на значение переводит на страницу запроса из архива.

  12. "Timeline"

    График интенсивности появления проблемных запросов, разбитый на 24 часа.

Вкладка «по динамическим объектам (операции)»

Loops, rows.

Состав страницы:

  1. "Тип узла"

    Нажатие на заголовок сортирует вкладку по типам узла.

    Нажатие на название шаблона переводит на страницу узла.

    Столбец отображает основные операции, отображаемые в планах выполнения запросов СУБД:

    Seq Scan

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

    Index Scan

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

    Bitmap Index Scan

    В то время как Index Scan извлекает один указатель кортежа за раз из индекса и немедленно переходит к этому кортежу в таблице, Bitmap Index Scan извлекает все указатели кортежей из индекса за один раз, сортирует их, используя структуру данных «битовая карта (bitmap)» в оперативной памяти, а затем просматривает кортежи таблиц в порядке физического расположения кортежей.

    Merge Join

    Соединение слиянием объединяет два отсортированных списка. Обе стороны объединения должны быть предварительно отсортированы.

    Nested Loops

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

    Hash Join

    Хеш-соединение загружает записи-кандидаты с одной стороны соединения в хеш-таблицу, которая затем проверяется для каждой строки с другой стороны соединения. Операция используется всегда, когда невозможно применить другие виды соединения: если соединяемые наборы данных достаточно велики и/или наборы данных не упорядочены по столбцам соединения.

    Sort

    Сортирует набор по столбцам, указанным в Sort Key. Операция сортировки требует больших объемов памяти для материализации промежуточного результата.

    Aggregate

    Появляется в плане, если в запросе есть агрегатная функция, используемая для вычисления отдельных результатов из нескольких входных строк: COUNT, SUM, AVG, MAX, MIN и прочие.

    GroupAggregate

    Группирует предварительно отсортированный набор в соответствии с предложением GROUP BY. Эта операция не буферизует промежуточный результат.

    HashAggregate

    Использует временную хэш-таблицу для группировки записей. Операция HashAggregate не требует предварительно отсортированного набора данных, вместо этого она использует большие объемы памяти для материализации промежуточного результата. Вывод не упорядочен каким-либо значимым образом.

    Filter

    Применяет фильтр к набору строк.

    Limit

    Прерывает выполение операций, когда было выбрано нужное количество строк.

    Append

    Запускает множество субопераций и возвращает все возвращенные ими строки в виде общего результата. Используется в запросах, содержащих UNION или UNION ALL.

    HashSetOp

    Операция используется операциями INTERSECT и EXCEPT (с опциональным модификатором ALL). Она работает следующим образом: запускает субоперации Append для пары подзапросов, а затем, на основании результата и опционального модификатора ALL, решает, какие строки нужно вернуть.

    Materialize

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

    CTE Scan

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

    SubPlan

    Операция означает подзапрос, в котором есть ссылки на основной запрос. Вызывается, чтобы посчитать данные из подзапроса, которые зависят от текущей строки.

    InitPlan

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

    Subquery Scan

    Операция означает подзапрос, входящий в UNION.

  2. "таблица"

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  3. "ptr" (pattern)

    Отображает количество шаблонов. При нажатии раскрывает список шаблонов. Если паттерн единственный, то отображается имя шаблона.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на имя шаблона переводит на страницу «шаблоны».

  4. кнопка [Узел]

    узел_button

    Переводит на страницу /узел.

  5. "кол-во"

    Количество.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  6. "loops"

    Суммарное для узла количество простых циклов типа pg_m_glossary-LOOP.

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  7. "loops avg"

    Среднее для узла количество простых циклов типа pg_m_glossary-LOOP.

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  8. "rows" (количество строк)

    Количество строк, возвращаемых узлом

    строка

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

  9. "rows_avg"

    Среднее количество строк.

  10. "RRbF"

    Rows Removed by Filter (Строки удалены фильтром)

    Нажатие на заголовок сортирует вкладку по данному столбцу.

    Отображает статистическую информацию, которую можно увидеть в плане выполнения запроса (query execution plan). Это значение указывает на количество строк, которые были удалены после применения фильтра в операции сканирования или присоединения таблицы.

    Когда СУБД выполняет запрос, он применяет фильтры к данным для выбора только тех строк, которые удовлетворяют заданным условиям. «Rows Removed by Filter» отображает количество строк, которые были отфильтрованы и удалены после применения этих условий. Это значение может быть полезно для анализа производительности запроса и оптимизации его выполнения.

    Обратите внимание, что «Rows Removed by Filter» не указывает на общее количество строк, выбранных или возвращенных в результате выполнения запроса. RRbF относится только к количеству строк, которые были удалены после применения фильтра.

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

  11. "RRbF_avg"

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  12. "RRbF_percent"

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  13. "last"

    Время последнего запроса.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на значение переводит на страницу запроса из архива.

  14. "Timeline"

    График интенсивности появления проблемных запросов, разбитый на 24 часа.

Вкладка «по динамическим объектам (ресурсы)»

Buffers, time.

Состав страницы:

  1. "Тип узла"

    Нажатие на заголовок сортирует вкладку по типам узла.

    Нажатие на название шаблона переводит на страницу узла.

    Столбец отображает основные операции, отображаемые в планах выполнения запросов СУБД:

    Seq Scan

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

    Index Scan

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

    Bitmap Index Scan

    В то время как Index Scan извлекает один указатель кортежа за раз из индекса и немедленно переходит к этому кортежу в таблице, Bitmap Index Scan извлекает все указатели кортежей из индекса за один раз, сортирует их, используя структуру данных «битовая карта (bitmap)» в оперативной памяти, а затем просматривает кортежи таблиц в порядке физического расположения кортежей.

    Merge Join

    Соединение слиянием объединяет два отсортированных списка. Обе стороны объединения должны быть предварительно отсортированы.

    Nested Loops

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

    Hash Join

    Хеш-соединение загружает записи-кандидаты с одной стороны соединения в хеш-таблицу, которая затем проверяется для каждой строки с другой стороны соединения. Операция используется всегда, когда невозможно применить другие виды соединения: если соединяемые наборы данных достаточно велики и/или наборы данных не упорядочены по столбцам соединения.

    Sort

    Сортирует набор по столбцам, указанным в Sort Key. Операция сортировки требует больших объемов памяти для материализации промежуточного результата.

    Aggregate

    Появляется в плане, если в запросе есть агрегатная функция, используемая для вычисления отдельных результатов из нескольких входных строк: COUNT, SUM, AVG, MAX, MIN и прочие.

    GroupAggregate

    Группирует предварительно отсортированный набор в соответствии с предложением GROUP BY. Эта операция не буферизует промежуточный результат.

    HashAggregate

    Использует временную хэш-таблицу для группировки записей. Операция HashAggregate не требует предварительно отсортированного набора данных, вместо этого она использует большие объемы памяти для материализации промежуточного результата. Вывод не упорядочен каким-либо значимым образом.

    Filter

    Применяет фильтр к набору строк.

    Limit

    Прерывает выполение операций, когда было выбрано нужное количество строк.

    Append

    Запускает множество субопераций и возвращает все возвращенные ими строки в виде общего результата. Используется в запросах, содержащих UNION или UNION ALL.

    HashSetOp

    Операция используется операциями INTERSECT и EXCEPT (с опциональным модификатором ALL). Она работает следующим образом: запускает субоперации Append для пары подзапросов, а затем, на основании результата и опционального модификатора ALL, решает, какие строки нужно вернуть.

    Materialize

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

    CTE Scan

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

    SubPlan

    Операция означает подзапрос, в котором есть ссылки на основной запрос. Вызывается, чтобы посчитать данные из подзапроса, которые зависят от текущей строки.

    InitPlan

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

    Subquery Scan

    Операция означает подзапрос, входящий в UNION.

  2. "таблица"

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  3. "индекс"

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  4. кнопка [Узел]

    узел_button

    Переводит на страницу /узел.

  5. "ptr" (pattern)

    Отображает количество шаблонов. При нажатии раскрывает список шаблонов. Если паттерн единственный, то отображается имя шаблона.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на имя шаблона переводит на страницу «шаблоны».

  6. "кол-во"

    Количество.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  7. "sum.мс"

    Суммарное время запросов в милисекундах.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  8. "avg.мс"

    Среднее время запроса в милисекундах.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  9. "buf.mem"

    Запросы, buffers которых по данному шаблону считались читающимися из памяти.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Наведение на значение отображет тултип со значнием объема.

  10. "buf:dsk"

    Запросы, buffers которых по данному шаблону считались читающимися с диска.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Наведение на значение отображет тултип со значнием объема.

  11. "last"

    Время последнего запроса.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на значение переводит на страницу запроса из архива.

  12. "Timeline"

    График интенсивности появления проблемных запросов, разбитый на 24 часа.

Вкладка «по триггерам»

Состав страницы:

  1. "Тип узла"

    Нажатие на заголовок сортирует вкладку по типам узла.

    Нажатие на название шаблона переводит на страницу узла.

    Столбец отображает основные операции, отображаемые в планах выполнения запросов СУБД:

    Seq Scan

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

    Index Scan

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

    Bitmap Index Scan

    В то время как Index Scan извлекает один указатель кортежа за раз из индекса и немедленно переходит к этому кортежу в таблице, Bitmap Index Scan извлекает все указатели кортежей из индекса за один раз, сортирует их, используя структуру данных «битовая карта (bitmap)» в оперативной памяти, а затем просматривает кортежи таблиц в порядке физического расположения кортежей.

    Merge Join

    Соединение слиянием объединяет два отсортированных списка. Обе стороны объединения должны быть предварительно отсортированы.

    Nested Loops

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

    Hash Join

    Хеш-соединение загружает записи-кандидаты с одной стороны соединения в хеш-таблицу, которая затем проверяется для каждой строки с другой стороны соединения. Операция используется всегда, когда невозможно применить другие виды соединения: если соединяемые наборы данных достаточно велики и/или наборы данных не упорядочены по столбцам соединения.

    Sort

    Сортирует набор по столбцам, указанным в Sort Key. Операция сортировки требует больших объемов памяти для материализации промежуточного результата.

    Aggregate

    Появляется в плане, если в запросе есть агрегатная функция, используемая для вычисления отдельных результатов из нескольких входных строк: COUNT, SUM, AVG, MAX, MIN и прочие.

    GroupAggregate

    Группирует предварительно отсортированный набор в соответствии с предложением GROUP BY. Эта операция не буферизует промежуточный результат.

    HashAggregate

    Использует временную хэш-таблицу для группировки записей. Операция HashAggregate не требует предварительно отсортированного набора данных, вместо этого она использует большие объемы памяти для материализации промежуточного результата. Вывод не упорядочен каким-либо значимым образом.

    Filter

    Применяет фильтр к набору строк.

    Limit

    Прерывает выполение операций, когда было выбрано нужное количество строк.

    Append

    Запускает множество субопераций и возвращает все возвращенные ими строки в виде общего результата. Используется в запросах, содержащих UNION или UNION ALL.

    HashSetOp

    Операция используется операциями INTERSECT и EXCEPT (с опциональным модификатором ALL). Она работает следующим образом: запускает субоперации Append для пары подзапросов, а затем, на основании результата и опционального модификатора ALL, решает, какие строки нужно вернуть.

    Materialize

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

    CTE Scan

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

    SubPlan

    Операция означает подзапрос, в котором есть ссылки на основной запрос. Вызывается, чтобы посчитать данные из подзапроса, которые зависят от текущей строки.

    InitPlan

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

    Subquery Scan

    Операция означает подзапрос, входящий в UNION.

  2. "таблица"

    Нажатие на заголовок сортирует вкладку по данному столбцу.

  1. "ptr" (pattern)

    Отображает количество шаблонов. При нажатии раскрывает список шаблонов. Если паттерн единственный, то отображается имя шаблона.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на имя шаблона переводит на страницу «шаблоны».

  2. "кол-во"

    Количество.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  3. "calls"

    «CALL» используется для вызова хранимых процедур (stored procedures) или функций. Хранимые процедуры и функции представляют собой набор инструкций SQL, объединенных под определенным именем и обычно выполняющие какие-то операции в базе данных.

    Чтобы вызвать хранимую процедуру или функцию, вы можете использовать следующий синтаксис:

    CALL procedure_name(argument1, argument2, ...)
    

    или

    CALL my_procedure('argument_value')
    

    Пример вызова хранимой функции без аргументов и присвоение результата переменной:

    SELECT * INTO result_variable FROM my_function()
    
  4. "calls.avg"

    Среднее количество вызовов.

  5. "sum.мс"

    Суммарное время запросов в милисекундах.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  6. "last"

    Время последнего запроса.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на значение переводит на страницу запроса из архива.

  7. "Timeline"

    График интенсивности появления проблемных запросов, разбитый на 24 часа.

Вкладка «пиковые цепочки»

Назначение – отображение набора фактов выполнений планов по одному и тому же шаблону, которые сцеплены по времени. Ключевая особенность данной вкладки - данные по цепочкам в связи с соответствующими шаблонами и методами.

При нажатии строку на шаблон раскрывается информацию о порядке выполнения операций и связях между различными узлами в плане выполнения (шаблон запроса) и список методов согласно количеству в графе «цепочек».

Состав страницы:

  1. "Шаблон/метод"

    Содержит шаблон <pg_m_glossary-pg_monitor_шаблон>) и метод запроса.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на название шаблона переводит на страницу шаблона.

  2. создание ссылки на задачу

    Кнопка создания ссылки на задачу (task_link_button )

    Привязывает данный шаблона к системе учета, отслеживания ошибок (например, jira), pg_monitor позволит перейти на указанную для данного шаблона задачу.

    Нажатие на кнопку task_link_button вызывает окно создания ссылки на задачу: task_link_button-1

  3. "событий"

    Соличество событий данного шаблона.

  4. "цепочек"

    Цепочки - набор фактов выполнений планов по одному и тому же шаблону, которые сцеплены по времени.

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

  5. "длина_max"

    Максимальная длина цепочки.

  6. "длина_avg"

    Средняя длина цепочки.

  7. "avg.мс"

    Среднее время запроса в милисекундах.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

  8. "last"

    Время последнего запроса.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Нажатие на значение переводит на страницу запроса из архива.

  9. "Timeline"

    График интенсивности появления проблемных запросов, разбитый на 24 часа.

Вкладка «по времени и ресурсам»

Назначение - соотнести методы в составе запросов с потребляемыми ими ресурсами.

Состав страницы:

  1. "Метод"

    Метод используемый в плане для выполнения определенной операции

  2. "шаблон"

    Шаблон - представление запроса, план запроса, очищенный от численных показателей, его структура.

  3. "counter"

    Счетчик запросов.

    Знак counter_alert указывает, что в данном списике план появился впервые.

  4. "время, мс"

    Время в милисекундах.

  5. "buffers"

    Суммарный объем буферизованной памяти.

  6. "buf.mem"

    Запросы, buffers которых по данному шаблону считались читающимися из памяти.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Наведение на значение отображет тултип со значнием объема.

  7. "buf:dsk"

    Запросы, buffers которых по данному шаблону считались читающимися с диска.

    Нажатие на заголовок сортирует вкладку по названию шаблона.

    Наведение на значение отображет тултип со значнием объема.

  8. %

    Отношение чтения с диска к общему количество (лучше, когда меньше).

  9. "time"

    Время регистрации запроса.

    При нажатии переводит на страницу запроса из архива.