Руководство по производительности
В этом руководстве описаны рекомендации по настройке правил выборки для повышения производительности системы.
В больших аккаунтах скорость получения данных напрямую зависит от того, насколько эффективно настроены условия фильтрации. Ниже приведены основные принципы и рекомендации по созданию быстрых правил выборки для планировщиков, фильтров, отчетов и аналитики.
Приоритет системных полей
Системные поля «Шаблон», «Проект» и «Объект» (и только они) обрабатываются быстрее, поскольку система специально оптимизирована для работы с ними.
- Сужайте выборку. Всегда добавляйте в фильтр системное поле, которое значительно уменьшает количество проверяемых сущностей. Например, если вы ищете задачи по настраиваемому полю «X», которое есть только в шаблоне «Z», добавьте условие для шаблона «Z» — это существенно ускорит запрос.
- Избегайте избыточных условий. Если вы уже указали условие для шаблона, добавлять условие для процесса, в котором используется этот шаблон, бессмысленно — это не ускорит работу.
Логические операторы: AND и OR
Логика условий — один из важнейших факторов, влияющих на производительность.
- Используйте «AND». Условия, объединенные оператором «AND», выполняются быстро, особенно если в цепочке есть фильтры по системным полям.
- Сведите к минимуму использование «OR». Использование «OR» (особенно на верхнем уровне фильтра, без общих условий сужения выборки) может замедлить получение данных в десятки и даже сотни раз. По возможности проектируйте логику так, чтобы не использовать условия «OR» для больших наборов данных.
Особенности отдельных полей
Не все проверки одинаково «легки» для базы данных.
- Конкретные значения и наличие данных. Проверка конкретного значения (например, «Поле X = Кассиопея») выполняется быстрее, чем проверка наличия значения в поле («Поле X: содержит данные»).
- Типы полей. Проверка полей с несколькими значениями (списков с множественным выбором) занимает больше времени, чем проверка простых полей, в которых хранится одно значение.
- «Адаптация» новых полей. В больших аккаунтах запросы с новым настраиваемым полем при первом запуске всегда выполняются медленно. Системе требуется время, чтобы оптимизировать условия, которые используются регулярно, поэтому через некоторое время запросы по таким полям обычно начинают выполняться быстрее.
Права доступа
Сложные проверки доступа во время выполнения — одна из самых ресурсоемких операций. Поэтому запросы выполняются быстрее для системных администраторов, чем для пользователей: права доступа администраторов не проверяются.
Под «запросом» здесь подразумевается любое действие — от открытия фильтра задач до запуска отчета, отображения Планировщика и т. д.
Сортировка и группировка больших объемов данных
Сортировка и группировка создают дополнительную нагрузку после получения данных.
- Избегайте ресурсоемкой сортировки. Сортировка по настраиваемым полям и датам для выборок, содержащих тысячи задач, значительно замедляет отображение. По возможности используйте сортировку по системным полям или не сортируйте данные.
- Не группируйте без необходимости. Если можно обойтись без группировки — обойдитесь; это ускорит загрузку.