ПРИМЕР БУДУЩЕГО РАЗБОРА
Что изменить, чем рискуем и как проверить.
Вымышленный запрос показывает, как мы проектируем разбор SpeedBase. Продукт не выполнял этот анализ; замеров ускорения и экономии здесь нет.
ЧТО ЗАМЕТИЛИ
В условии отбора функция применяется к столбцу с датой. Стоит проверить, мешает ли это использовать существующий индекс.
ВАРИАНТ 01
Изменить фильтр по дате.
Сравнить условие с функцией и отбор по диапазону дат. Для диапазона может подойти существующий индекс. Границы дня должны учитывать тип столбца и часовой пояс.
Проверить: те же строки отчёта, план и время выполнения.
ВАРИАНТ 02
Рассмотреть индекс по выражению.
Сначала проверить, допустимо ли индексировать выражение для этого типа данных. Индекс потребует места и может замедлить вставку и обновление заказов.
Проверить: допустимость выражения, план, место на диске и влияние на запись.
Когда оставить запрос без изменений
Если проверка не выявит полезного улучшения при допустимых затратах и риске, менять запрос не нужно.
СЛЕДУЮЩИЙ ШАГ
Сравнить варианты в одинаковых условиях.
Для выбора нужны замеры на копии данных с нагрузкой, близкой к рабочей. Среду и порядок запуска согласует ваша команда.
- Сохранить результат отчёта. Измерить время его выполнения, задержки и ошибки при оформлении заказов.
- Проверить каждый вариант отдельно, одновременно запуская отчёт и оформление заказов.
- Сравнить строки отчёта, время, расход ресурсов и работу заказов. Отклонить вариант, если он нарушает согласованные требования.