Запити SOQL (Мова запитів об'єктів Salesforce) іноді можуть працювати швидше в середовищі пісочниці порівняно з виробничим середовищем завдяки декількох технічних та оперативних факторів, що мають внутрішні те, як створюються та керуються пісочниці Salesforce. Розуміння цих факторів вимагає заглиблення в відмінності в обсягах даних, індексації, кешування, суперечливих ресурсів та оптимізації системи, характерних для пісочниці проти виробничих умов.
Обсяг даних та складність даних
Однією з основних причин запитів SOQL працює швидше в середовищі пісочниці, є різниця в обсязі даних. Пісочниці, як правило, мають менші набори даних, ніж виробничі середовища, особливо якщо вони є частковими або розробниками пісочники, які копіюють лише підмножину виробничих даних. Цей зменшений обсяг даних означає, що менше записів потрібно сканувати, індексувати та повернути запити, природно прискорюючи час виконання запитів. Навіть у повних пісочницях, які відображають дані виробництва, часті оновлення або знімки можуть означати, що дані не такі об'ємні або не так часто доступні, як у прямому виробництві, що призводить до кращої продуктивності за рахунок нижчого загального навантаження на систему.
індексація та селективність
Оптимізатор запитів Salesforce значною мірою покладається на індекси для прискорення виконання запитів. Запити, які фільтрують на індексованих полях, часто набагато швидше, оскільки Salesforce може швидко звузити набір результату, а не сканувати всю таблицю. У середовищах пісочниці оптимізатор запитів може поводитись більш ефективно, оскільки розподіл даних може бути різним, що дозволяє індексам бути більш вибірковими. Наприклад, якщо пісочниця має менше дублікатів або нульового значення в певних індексованих полях, ніж виробництво, оптимізатор запитів може ефективніше використовувати індекси для швидшого виконання запитів. Більше того, середовища пісочниці часто дозволяють отримати більшу гнучкість в експерименті з спеціальними індексами або налаштуванням запитів, не впливаючи на виробництво, що може оптимізувати продуктивність SOQL під час розробки та тестування.
Знижена ізоляції та ізоляції ресурсів
Виробничі середовища є багатогранними і сильно використовуються за допомогою кінцевих користувачів, які виконують різні операції одночасно, створюючи суперечки. Це твердження може уповільнити виконання запитів, оскільки процесор, пам'ять та вводу/виводу поділяються між численними одночасними процесами. Навпаки, пісочниці, особливо розробники та розробники Pro пісочниці, як правило, мають менше одночасних користувачів та зниження загального навантаження на систему. Це зменшення одночасного попиту на обробку означає, що запити можуть отримати доступ до ресурсів легше, скорочуючи час очікування та прискорюючи виконання.
стабільність кешування та запиту
Salesforce використовує складні механізми кешування запитів для підвищення продуктивності. У середовищах пісочниці певні результати запитів та плани виконання можуть бути кешовані, особливо якщо повторні тести або ітерації розвитку виконують ті самі запити. Цей ефект кешування може прискорити продуктивність запитів на наступних пробіжках. Більше того, оскільки дані пісочниці змінюються рідше, ніж виробництво, плани та результати кешування залишаються дійсними довше, підвищуючи ефективність запитів. Виробничі середовища з їх динамічними та безперервними змінами даних та великою транзакційною діяльністю не можуть ефективно використовувати кешування, що призводить до більш частого відновлення планів запитів і, таким чином, повільніших показників запитів.
Контекст губернатора та контекст виконання
Salesforce накладає обмеження губернатора, включаючи максимальну кількість запитів SOQL на транзакцію для підтримки стабільності платформи. У пісочниці розробки розробники часто налаштовують та контролюють контексти виконання більш ретельно, щоб уникнути досягнення цих меж, наприклад, шляхом об'ємних запитів та обробки даних у партіях. Цей розумний розвиток та тестування допомагають підтримувати запити оптимізовані перед розгортанням виробництва. У виробництві складні бізнес -процеси та інтеграції можуть ненавмисно спричинити надмірне або неефективне запит, що призведе до повільної продуктивності через повторні хіти бази даних та досягнення меж губернатора. Пісочниці забезпечують безпечніший простір для налагодження та оптимізації цих запитів, даючи кращі відносні показники.
Відмінності в правилах обміну та налаштуваннями безпеки
Середовища пісочниці може бути спрощеними або різними правилами спільного використання та конфігураціями безпеки порівняно з виробництвом. Salesforce застосовує правила спільного використання та видимості на рівні бази даних під час виконання запитів. Складні розрахунки спільного використання у виробництві можуть додавати накладні витрати, особливо тих, що стосуються безпеки об'єкта та рекордного рівня. Пісочниці, що використовуються для розробки або тестування, іноді піднімають або спрощують ці правила, зменшуючи складність виконання і, таким чином, прискорюючи продуктивність запитів SOQL.
Фокус тестування та оптимізації
У середовищах пісочниці, як правило, зосереджується на тестуванні та оптимізації. Розробники та адміністратори активно профілюють, аналізують та вдосконалюють запити SOQL, використовуючи інструменти Salesforce, такі як інструмент плану запитів, журнали продуктивності розробника консолі та журнали налагодження. Отже, найкращі практики, отримані під час розробки пісочниці, такі як вибір лише необхідних полів, застосування селективних фільтрів, уникнення циклів із запити всередині них, вдумливо використання взаємозв'язків та агрегатів та асинхронна обробка (як -от пакетна вершина), що призводить до більш швидких запитів. Виробничі середовища все ще можуть містити застарілі або неоптимізовані запити, що погіршують продуктивність.
Інші фактори, що сприяють
- Замих даних: Дані про виробництво часто перекошували розподіл, де невеликий підмножина записів домінує над набором даних. Цей перекос може погіршити ефективність запитів, перемігши стратегії індексації. Пісочниці можуть мати менше перекосу, що забезпечує більш ефективні запити.
- Стан вакууму та рециркуляції: Видалені записи у відро для переробки можуть вплинути на продуктивність. Органи виробництва зазвичай мають більш повне відро для переробки, ніж пісочниці, які можуть сповільнити запити SOQL, які отримують доступ до пов'язаних об'єктів або історій.
- Затримка реплікації та статистика запитів: оптимізатор запитів Salesforce покладається на попередньо обчислену статистику, яка періодично оновлюється. Пісочниці, особливо нещодавно оновлені, можуть мати свіжу статистику, яка дозволяє оптимізатору вибирати кращі плани запитів.
- Вдосконалення платформи: іноді Salesforce розгортає нові покращення продуктивності та спочатку функціонує в пісочниці для раннього тестування. Це може тимчасово підвищити продуктивність пісочниці щодо старих виробничих умов.
Підводячи підсумок, запити SOQL працюють швидше в середовищах пісочниці, насамперед, завдяки меншим та менш складним набором даних, кращою селективністю індексу, зменшеною суперечкою системи, ефективним кешуванням, цілеспрямованою оптимізацією запитів під час розробки та простішими конфігураціями безпеки та обміну. Ці комбіновані фактори створюють умови, коли оптимізатор запитів Salesforce може більш ефективно виконувати запити та де ресурси доступні для обробки запитів. Це середовище сприяє кращій продуктивності недосяжних у високо завантаженому та складному характері виробничих органів. Таким чином, пісочниці служать як ігровим майданчиком для розробки/тестування, так і місцем для налаштування продуктивності перед розгортанням запитів та додатків у виробництво, де вимоги продуктивності та складності даних значно вищі. Усі ці відомості проводяться з найкращих практик продуктивності Salesforce, досвіду розробників та архітектури Salesforce.