Найти в Дзене
Postgres DBA

Гипотеза об ожиданиях СУБД PostgreSQL.

Оглавление

Время - деньги
Время - деньги

Определение ожидания СУБД

Серверный процесс выполняющий SQL запрос к СУБД, в процессе выполнения находится в основных состояниях:
· active: серверный процесс выполняет запрос.
· idle: серверный процесс ожидает новой команды от клиента.
· idle in transaction: серверный процесс находится внутри транзакции, но в настоящее время не выполняет никакой запрос.

Postgres Pro Enterprise : Документация: 15: 27.2. Система накопительной статистики : Компания Postgres Professional

Если, серверный процесс находится состоянии active, то процесс может находится в либо в состоянии выполнения запроса, либо в состоянии ожидания:
wait_event_type text
Тип события, которого ждёт обслуживающий процесс, если это ожидание имеет место; в противном случае — NULL.

Postgres Pro Enterprise : Документация: 15: 27.2. Система накопительной статистики : Компания Postgres Professional

Вывод

Сокращение периодов, когда серверный процесс, обрабатывающий SQL-запрос в СУБД, фиксирует наличие события ожидания, напрямую влияет на время ожидания самого процесса. Чем меньше это время ожидания, тем быстрее завершается SQL-запрос. При многократном выполнении запросов, минимизация времени ожидания позволяет увеличить количество выполненных операций за единицу времени, что в свою очередь повышает скорость предоставления полезной информации клиенту.

Термины и определения:

Операционная скорость

Сводный индикатор, определяемый путем сложения количества исполненных SQL-запросов и общего объема строк, обработанных или задействованных операторами за установленный период.

Для сглаживания выбросов используется медианное сглаживание.

Ось X - точка наблюдения. Ось Y - значение операционной скорости.
Ось X - точка наблюдения. Ось Y - значение операционной скорости.

События ожидания в PostgreSQL

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

Подробнее об блокировках и ожиданиях.

Ось X - точка наблюдения. Ось Y - общее количество ожиданий за отрезок наблюдения.
Ось X - точка наблюдения. Ось Y - общее количество ожиданий за отрезок наблюдения.

Коэффициент корреляции

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

Корреляция между операционной скоростью и ожиданиями

Коэффициент корреляции между значениями операционной скорости и событиями ожидания.

Ось X - значения операционной скорости за период наблюдения. Ось Y - значения ожиданий за период наблюдений.
Ось X - значения операционной скорости за период наблюдения. Ось Y - значения ожиданий за период наблюдений.

Корреляция между ожиданиями

Коэффициент корреляции между всеми ожиданиями и событиями ожидания по определенному типу

Ось X - значения ожиданий за период наблюдений.  Ось Y - значения ожиданий типа IPC за период наблюдений.
Ось X - значения ожиданий за период наблюдений. Ось Y - значения ожиданий типа IPC за период наблюдений.

Практический вывод

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

Если исключить влияние аппаратного обеспечения (процессор, сеть), ключевую роль в падении производительности играет тип ожидания, демонстрирующий максимальную корреляцию со всеми остальными ожиданиями СУБД.

Таким образом, сократив число ожиданий этого типа, можно ускорить выполнение SQL-запроса, что приведет к увеличению числа обработанных запросов за единицу времени и, следовательно, к росту общей производительности.