Краткий ответ

Низкая производительность Salesforce является совокупным симптомом: страница записи с 14 компонентами, три автоматизации, запускаемые при одном сохранении, запрос, сканирующий миллион записей, и интеграция, извлекающая данные в часы пик. Единственный способ улучшить ситуацию без чрезмерных затрат бюджета — это послойное измерение, выявление доминирующего слоя и работа с ним, а затем повторное измерение.

Пять слоев и что измеряется в каждом

СлойТипичный симптомИнструменты измеренияТиповое решение
Браузер и сетьЗамедление только у части пользователейLightning Usage App по пользователямКорпоративная задержка, версия браузера, VPN
Экран и компонентыВысокий EPT на центральной странице записиEPT на страницу, режим отладкиУменьшение числа компонентов, отложенная загрузка, вкладки
АвтоматизацияМедленное сохранение, таймаут при массовом обновленииЖурналы отладки, сессии FlowОбъединение Flows, асинхронный переход
Данные и запросыОтчеты не загружаются, List View зависаетQuery Plan, Apex JobsСелективная фильтрация, индекс, архивация
ИнтеграцияПиковые нагрузки в фиксированное времяEvent Monitoring, использование APIBulk API, окна выполнения, троттлинг

Работа с большими объемами данных

При наличии более миллиона записей в объекте правила игры меняются. Перекос данных (Data Skew) — например, 200 тысяч учетных записей, связанных с одним владельцем или родителем — создает блокировки строк и замедляет любое массовое обновление. Решение заключается в распределении владения, а не в добавлении аппаратных средств, которые в любом случае находятся вне вашего контроля. Параллельно стоит рассмотреть архивацию: закрытые записи пятилетней давности, которые никто не читает, удорожают каждый запрос, выполняющий сканирование.

Экраны: меньше — значит быстрее

Средняя страница записи в зрелой организации накапливает два-три компонента в год, потому что каждый заинтересованный владелец просит "еще один виджет". Каждый компонент Lightning выполняет свои вызовы. Две операции приносят наибольшую выгоду: перемещение второстепенных компонентов на отдельные вкладки, которые загружаются только при нажатии, и применение видимости компонентов в зависимости от типа записи или роли, чтобы пользователь видел только то, что актуально для него. Сочетание этих двух подходов снижает EPT на десятки процентов без изменения кода.

Порядок действий, который работает

Начинается с недели измерений без изменений, чтобы установить надежный базовый уровень для пяти ключевых экранов и трех основных процессов. Затем обрабатываются экраны — это дешево и быстро. На третьем этапе объединяются автоматизации по объектам, и только на четвертом этапе затрагиваются запросы и модель данных. Интеграции обрабатываются параллельно, если измерения показали, что они являются причиной.

Логика такого порядка экономична: первые слои дешевы и обратимы, последние дороги и требуют регрессионного тестирования. Подробнее об этом можно прочитать в наших статьях Salesforce Health Check и Признаки необходимости обновления системы Salesforce.

Распространенные риски и профилактические меры

Большой риск — оптимизация без базового уровня: выполняются десять изменений, пользователи по-прежнему жалуются, и нет способа узнать, что помогло. Измерение до и после каждого значительного изменения — это необходимое условие, а не роскошь.

Второй риск — устранение самого громкого симптома. Экран, на который больше всего жалуются, не обязательно самый медленный — иногда он просто открывается чаще всего за день. Третий риск — изменение автоматизаций без тестового покрытия: объединение Flows — это действие с наибольшим потенциалом для скрытого нарушения бизнес-логики.

Как измеряется успех

Достаточно четырех метрик: средний EPT на пяти ключевых экранах, время сохранения в основном бизнес-процессе, количество сбоев по таймауту и лимитам платформы за месяц, а также доля запросов, длящихся более пяти секунд. Пятый показатель — дополнительный и нетехнический — это количество жалоб на производительность в Service Desk, которое должно уменьшаться по мере фактического улучшения.