Определение ожидания СУБД
Серверный процесс выполняющий SQL запрос к СУБД, в процессе выполнения находится в основных состояниях:
· active: серверный процесс выполняет запрос.
· idle: серверный процесс ожидает новой команды от клиента.
· idle in transaction: серверный процесс находится внутри транзакции, но в настоящее время не выполняет никакой запрос.
Если, серверный процесс находится состоянии active, то процесс может находится в либо в состоянии выполнения запроса, либо в состоянии ожидания:
wait_event_type text
Тип события, которого ждёт обслуживающий процесс, если это ожидание имеет место; в противном случае — NULL.
Вывод
Сокращение периодов, когда серверный процесс, обрабатывающий SQL-запрос в СУБД, фиксирует наличие события ожидания, напрямую влияет на время ожидания самого процесса. Чем меньше это время ожидания, тем быстрее завершается SQL-запрос. При многократном выполнении запросов, минимизация времени ожидания позволяет увеличить количество выполненных операций за единицу времени, что в свою очередь повышает скорость предоставления полезной информации клиенту.
Термины и определения:
Операционная скорость
Сводный индикатор, определяемый путем сложения количества исполненных SQL-запросов и общего объема строк, обработанных или задействованных операторами за установленный период.
Для сглаживания выбросов используется медианное сглаживание.
События ожидания в PostgreSQL
Информация о том, что именно процесс базы данных ожидает, когда не выполняются активные запросы.
Подробнее об блокировках и ожиданиях.
Коэффициент корреляции
Коэффициент корреляции в математической статистике — показатель, характеризующий силу статистической связи между двумя или несколькими случайными величинами.
Корреляция между операционной скоростью и ожиданиями
Коэффициент корреляции между значениями операционной скорости и событиями ожидания.
Корреляция между ожиданиями
Коэффициент корреляции между всеми ожиданиями и событиями ожидания по определенному типу
Практический вывод
При стабильной нагрузке (идентичные SQL-запросы) и неизменных настройках базы данных, взаимосвязь между производительностью и количеством ожиданий показывает, насколько сильно события ожидания влияют на снижение скорости работы.
Если исключить влияние аппаратного обеспечения (процессор, сеть), ключевую роль в падении производительности играет тип ожидания, демонстрирующий максимальную корреляцию со всеми остальными ожиданиями СУБД.
Таким образом, сократив число ожиданий этого типа, можно ускорить выполнение SQL-запроса, что приведет к увеличению числа обработанных запросов за единицу времени и, следовательно, к росту общей производительности.