Руководство по производительности

Материал из Planfix

Руководство по производительности описывает лучшие практики настройки правил отбора в системе.

При работе с большими аккаунтами скорость выборки данных напрямую зависит от того, насколько эффективно настроены условия фильтрации. Ниже приведены ключевые принципы и рекомендации по созданию быстрых правил отбора для планировщиков, фильтров, отчётов и аналитик.

Приоритет системных полей

Системные поля «Шаблон», «Проект», «Объект» (и только они) обрабатываются быстрее, так как система специально оптимизирована под них.

  • Сужайте выборку. Всегда старайтесь добавить в фильтр системное поле, которое значительно сократит количество проверяемых сущностей. Например, если вы ищете задачи по кастомному полю «Х», которое есть только в шаблоне «Z», обязательно укажите условие по шаблону «Z» — это значительно ускорит работу.
  • Избегайте избыточности. Если вы уже указали условие по шаблону, добавлять условие по процессу (в котором работает этот шаблон) не имеет смысла — скорости это не прибавит.

Логические операторы: И против ИЛИ

Логика условий — один из самых критичных факторов производительности.

  • Используйте «И» (AND). Условия, связанные через «И», работают быстро, особенно если в цепочке есть отсечки по системным полям.
  • Минимизируйте «ИЛИ» (OR). Использование «ИЛИ» (особенно на верхнем уровне фильтра, без общих сужающих условий) может замедлить выборку в десятки и сотни раз. Старайтесь проектировать логику так, чтобы избегать условий «ИЛИ» в больших массивах данных.

Особенности работы с полями

Не все проверки одинаково «лёгкие» для базы данных.

  • Конкретные значения против «наличия данных». Проверка на конкретное значение (например, «Поле Х = Кассиопея») выполняется быстрее, чем проверка на заполненность поля («Поле Х: содержит данные»).
  • Типы полей. Множественные поля (списки с множественным выбором) требуют больше времени на проверку, чем простые поля, в которых хранится одно значение.
  • «Прогрев» новых полей. В крупных аккаунтах выборка по новому пользовательскому полю при первом запуске всегда будет медленной. Системе требуется время на оптимизацию условий, которые начинают использоваться регулярно, поэтому обычно через некоторое время выборки по таким полям ускоряются.

Права доступа

Сложные проверки прав доступа «на лету» — одна из самых ресурсозатратных операций. Поэтому выборки, которые делают администраторы системы, работают быстрее, чем те же выборки, выполняемые пользователями: для администраторов права доступа в принципе не проверяются.

Под «выборкой» здесь понимается любое действие — от захода в фильтр задач до выполнения отчёта, отрисовки планировщика и т. п.

Сортировка и группировка на больших объёмах

Сортировка и группировка — это дополнительная нагрузка, которая накладывается на уже сделанную выборку.

  • Избегайте тяжёлых сортировок. Сортировка по пользовательским полям и датам на выборках, возвращающих тысячи задач, сильно замедляет отображение данных. По возможности используйте сортировку по системным полям или откажитесь от неё.
  • Не группируйте без необходимости. Если можно не группировать — не группируйте, это ускорит загрузку.

Перейти