Запросы запросов на объект Salesforce Object) иногда могут работать быстрее в среде песочницы по сравнению с производственной средой из -за нескольких технических и оперативных факторов, присущих тем, как создаются и управляются песочницы Salesforce. Понимание этих факторов требует углубления различий в объемах данных, индексации, кэшировании, пребывании ресурсов и оптимизации систем, специфичных для песочнице и производственных сред.
Объем и сложность данных
Одной из основных причин, по которой запросы SOQL работают быстрее в средах песочницы, является разница в объеме данных. Песочники, как правило, имеют меньшие наборы данных, чем производственные среды, особенно если они являются частичными или песочницей разработчика, которые копируют только подмножество производственных данных. Этот уменьшенный объем данных означает меньше записей необходимо сканировать, индексировать и возвращать запросами, естественно ускоряет время выполнения запросов. Даже в полных песочницах, которые отражают данные производства, частые обновления или снимки могут означать, что данные не такие объемные или часто доступны, как в живой производственной организации, что приводит к повышению производительности из -за более низкой общей нагрузки на систему.
индексация и избирательность
Оптимизатор запросов Salesforce в значительной степени зависит от индексов для ускорения выполнения запросов. Запросы, которые фильтруют на индексированных полях, часто намного быстрее, потому что Salesforce может быстро сузить набор результатов, а не сканировать всю таблицу. В средах песочницы оптимизатор запросов может вести себя более эффективно, потому что распределение данных может быть различным, что позволяет индексам быть более избирательными. Например, если песочница имеет меньше дубликатов или нулевых значений в определенных индексированных полях, чем производство, оптимизатор запроса может более эффективно использовать индексы для быстрее выполнения запросов. Более того, среда песочницы часто обеспечивает большую гибкость в экспериментах с пользовательскими индексами или настройкой запросов, не влияя на производство, что может оптимизировать производительность SOQL во время разработки и тестирования.
Уменьшенное споры и изоляция ресурсов
Производственные среды многозначны и широко используются конечными пользователями, выполняющими различные операции одновременно, создавая ресурс. Это утверждение может замедлить выполнение запросов, поскольку ЦП, память и ввод -вывод разделяются среди многочисленных параллельных процессов. Напротив, песочницы, особенно песочницы для разработчиков и разработчика Pro, имеют тенденцию иметь меньше одновременных пользователей и более низкую общую системную нагрузку. Это сокращение одновременного спроса на обработку означает, что запросы могут с большей готовностью получить доступ к ресурсам, сокращая время ожидания и ускоряет выполнение.
Стабильность кэширования и плана запросов
Salesforce использует сложные механизмы кэширования запросов для повышения производительности. В средах песочницы могут быть кэшированы определенные результаты запроса и планы выполнения, особенно если повторяющиеся тесты или итерации разработки выполняют те же вопросы. Этот эффект кэширования может ускорить производительность запроса при последующих пробегах. Более того, поскольку данные песочницы изменяются реже, чем производство, планы и результаты кэшированного запроса остаются дольше дольше, повышая эффективность запроса. Производственные среды с их динамическими и непрерывными изменениями данных и тяжелой транзакционной активностью не могут эффективно использовать кэширование, что приводит к более частому перекомпиляции планов запросов и, следовательно, более медленной производительности запросов.
Губернаторские ограничения и контекст исполнения
Salesforce налагает лимит губернаторов, включая максимальное количество запросов SOQL на транзакцию, чтобы поддерживать стабильность платформы. В разработке песочницы разработчики часто более тщательно настраивают и управляют контекстами выполнения, чтобы избежать достижения этих пределов, например, путем объемных запросов и данных обработки в партиях. Эта внимательная разработка и тестирование помогают поддерживать оптимизированные запросы перед развертыванием до производства. В производстве сложные бизнес -процессы и интеграции могут непреднамеренно вызывать чрезмерные или неэффективные запросы, что приводит к более медленной эффективности из -за повторных хитов базы данных и достижения пределов губернатора. Песочники обеспечивают более безопасное место для отладки и оптимизации этих запросов, что дает лучшую относительную производительность.
Различия в правилах обмена и настройками безопасности
Среда песочницы может иметь упрощенные или различные правила обмена и конфигурации безопасности по сравнению с производством. Salesforce обеспечивает соблюдение правил обмена и видимости на уровне базы данных во время выполнения запросов. Сложные расчеты совместного использования в производстве могут добавить накладные расходы на запросы, особенно связанные с безопасностью объекта и уровня записей. Песочники, используемые для разработки или тестирования, иногда поднимают или упрощают эти правила, уменьшая сложность выполнения и, таким образом, ускоряя производительность запроса SOQL.
Тестирование и оптимизация фокусируется
В средах песочницы, как правило, сосредоточено на тестировании и оптимизации. Разработчики и администраторы активно профиляют, анализируют и улучшают запросы SOQL с использованием инструментов Salesforce, таких как инструмент плана запросов, журналы производительности консоли разработчика и журналы отладки. Следовательно, лучшие практики, изученные во время разработки песочницы, такие как выбор только необходимых полей, применение селективных фильтров, избегание циклов с запросами внутри них, использование отношений и вдумчиво агрегирует и асинхронную обработку (например, пакетная вершина), в результате проводятся более быстрые запросы. Производственные среды могут по -прежнему содержать наследие или неоптимизированные запросы, которые разрушают производительность.
Другие способствующие факторы
- Наброски данных: данные производства часто имеют искаженные распределения, где небольшое подмножество записей доминирует в наборе данных. Этот перекос может ухудшить производительность запроса, победив стратегии индексации. Песочники могут иметь меньше перекоса, что позволяет более эффективным запросам.
- Вакуум и переработка. Состояние: удаленные записи в корзине могут повлиять на производительность. Производственные организации обычно имеют более полную корзину рециркуляции, чем песочницы, которые могут замедлить запросы SOQL, которые получают доступ к связанным объектам или историям.
- Статистика репликации и статистика запроса: оптимизатор запросов Salesforce опирается на предварительно рассчитанную статистику, которая периодически обновляется. Песочники, особенно недавно обновленные, могут иметь свежую статистику, которая позволяет оптимизатору выбирать лучшие планы запросов.
- Усовершенствования платформы: иногда Salesforce развертывает новые улучшения производительности и функции сначала в песочнице для раннего тестирования. Это может временно повысить производительность песочницы по сравнению со старыми производственными средами.
Таким образом, запросы SOQL работают быстрее в средах из песочниц, главным образом из -за более мелких и менее сложных наборов данных, лучшей селективности индекса, снижения конфликта системы, эффективного кэширования, целенаправленной оптимизации запросов во время разработки, а также более простых конфигураций безопасности и обмена конфигурациями. Эти комбинированные факторы создают условия, в которых оптимизатор запросов Salesforce может выполнять запросы более эффективно и где ресурсы более легко доступны для обработки запросов. Эта среда способствует лучшей производительности недостижимой в высокопоставленном и сложном характере производственных организаций. Таким образом, песочницы служат как игровой площадкой для разработки/тестирования, так и местом для настройки производительности, прежде чем развернуть запросы и приложения в производство, где потребности в производительности и сложности данных намного выше. Все эти идеи взяты из лучших практик производительности Salesforce, опыта разработчиков и характеристик архитектуры Salesforce.