Журнал медленных SQL-запросов#
Журнал предназначен для хранения сведений о SQL-запросах, продолжительность выполнения которых превышает установленный порог.
Журнал доступен по пути: Настройка системы > Сервис > Инструменты > Монитор сессий сервера приложений > Анализ базы данных > Активные запросы.
Для открытия журнала выполните операцию Посмотреть историю.
Интерфейс журнала#
Интерфейс журнала содержит:
панель фильтрации;
список сохраненных запросов;
область с текстом выбранного запроса.
Панель фильтрации
Для отбора записей доступны следующие параметры:
Фильтр |
Описание |
|---|---|
Дата записи в журнал |
Ограничивает список запросами, сохраненными за указанную дату |
Отображать запросы на копирование |
Включает отображение запросов на копирование |
Список запросов
В основной таблице отображаются сохраненные сведения о медленных SQL-запросах.
Колонка |
Описание |
|---|---|
Дата записи в журнал |
Дата и время формирования записи |
Время выполнения (мин) |
Продолжительность выполнения запроса в минутах |
Состояние |
Состояние сессии базы данных |
Системное имя пользователя |
Имя пользователя базы данных |
IP-адрес клиента |
IP-адрес источника запроса |
Системное имя приложения |
Системное имя приложения, связанного с запросом |
Форма |
Информация о форме, из которой выполнялся запрос |
Кластерный узел |
Кластерный узел, на котором выполнялся запрос |
SID сеанса |
Идентификатор сеанса |
Стек |
Трассировка стека |
Текст запроса
При выборе записи в нижней области на вкладке Текст запроса отображается текст соответствующего SQL-запроса.
Настройка журнала#
Для ведения журнала должно быть включено задание Btk_SlowQueryHistoryUpdate.
В стандартной поставке задание включено и выполняется каждые 15 минут.
Включить задание или изменить расписание можно в Менеджере заданий.
По умолчанию медленным считается запрос, выполняющийся более 15 минут. Изменить этот порог через настройки системы невозможно. Порог определяется программно методом Btk_MonitorDBActivityPkg#getIntervalToAcceptAsSlowQuery.
События формирования записей#
Записи формируются заданием Btk_SlowQueryHistoryUpdate на основе данных pg_stat_activity.
В журнал сохраняются SQL-запросы, продолжительность выполнения которых превышает 15 минут.
Хранение данных#
Данные хранятся в таблице aud.Btk_SlowQueryHistory.
Хранимые поля#
usename— имя пользователя;dcreate— дата и время формирования записи;query— текст SQL-запроса;nduration— продолжительность выполнения запроса в минутах;state— состояние сессии базы данных;sclienthostip— IP-адрес источника запроса;sappname— наименование главной выборки;sform— информация о форме: отображение, выборка и наименование;sclusternode— кластерный узел;ssid— SID сеанса;stack— трассировка стека;saction— действие, связанное с запросом.
Состояния сессии базы данных#
Поле state содержит состояние сессии базы данных на момент формирования записи.
Значение |
Описание |
|---|---|
|
Сессия находится в режиме ожидания. Подключение к базе данных установлено, но запросы в данный момент не выполняются. |
|
Сессия выполняет запрос. |
|
Сессия находится в режиме ожидания с открытой транзакцией. Длительные открытые транзакции могут отрицательно влиять на производительность PostgreSQL и указывать на наличие проблемы. |
Заполнение действия#
Поле saction заполняется, если запрос связан с прикладным действием, которое удалось определить.
Поле может быть заполнено в следующих случаях:
сессия относится к выполняемому фоновому заданию, включая интеграционные задания;
выполняется построение печатной формы.
Программные интерфейсы#
Для регистрации механизма используется метод:
Btk_MonitorDBActivityPkg.dataInstall();
Для обновления истории медленных запросов используется метод:
Btk_MonitorDBActivityPkg.updateSlowQueryHistory();
Хранение и очистка#
Записи журнала удаляются заданием очистки. По умолчанию срок хранения составляет 30 дней и может быть изменен в настройках задания.
Настройка и запуск очистки описаны в разделе «Очистка аудитов и журналов».