.. _profiler:

Профайлер
===============

Инструмент ``Профайлер`` позволяет измерять производительность и затраты на исполнение  ``SQL`` и ``PSQL`` кода.

.. figure:: img/profiler.png

    Профайлер

Выбор соединения для профилирования:

1. Выберите интересующее подключение в выпадающем списке.
2. Нажмите на кнопку ``Выбрать`` и в открывшемся окне выберите пользовательское соединение, которое необходимо профилировать:

    .. figure:: img/profiler_user.png
        :width: 70%

        Выбор пользовательского соединения для профилирования

Также можно открыть сохранённую сессию профайлера, нажав на кнопку ``Загрузить``:

.. figure:: img/profiler_add.png
    :width: 70%

    Сохранённые сессии

Форматы отображения результата: 

* ``Компактное отображение`` – Отображает общую картину выполнения запросов. Повторяющиеся процессы внутри общего родительского будут объединены в один. Является значением по умолчанию.
* ``Отображать план`` - Отображает/скрывает план выполнения запроса. По умолчанию включено.
* ``Округлять значения`` - Если общее или среднее время больше 1000000ns, то оно будет переводиться в большую единицу измерения, пока значение не станет меньше 1000000. По умолчанию включено.

Кнопка ``Отменить все сессии`` отменяет все сеансы профилирования для выбранного подключения (с указанным ``ATTACHMENT_ID``).

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

В результирующей таблице отображается информация, собранная профайлером, а именно:

* Имя процесса или SQL-код;
* Затраченное на процесс время в наносекундах (с учетом дочерних процессов) и процент времени от родительского процесса;
* Среднее затраченное на процесс время в наносекундах (с учетом дочерних процессов) для повторяющихся процессов, объединенных в один узел;
* Количество вызовов повторяющихся процессов.

При двойном клике по узлу откроется окно просмотра данных:

.. figure:: img/profiler_data.png
    :width: 70%

    Окно просмотра данных

Сессию профайлера можно запустить для одного запроса из редактора запросов кликом по кнопке ``Выполнить в профайлере``. 
В этом случае будет выполнено следующее:

1. Запустится сессия профайлера.
2. Выполнится находящийся в редакторе запрос.
3. Завершится сессия профайлера.
4. Отобразится панель профайлера с собранной информацией.


