Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kodėl smėlio dėžės aplinkoje SOQL užklausos gali veikti greičiau?


Kodėl smėlio dėžės aplinkoje SOQL užklausos gali veikti greičiau?


SOQL užklausos našumas smėlio dėžės aplinkoje

1. Duomenų gretumas: smėlio dėžės aplinkose yra gretimi duomenys, todėl užklausos vykdomos efektyviau. Taip yra todėl, kad duomenys nukopijuojami iš gamybinės aplinkos, taip užtikrinama, kad įrašai būtų saugomi gretimais, todėl duomenų bazei lengviau efektyviai gauti įrašus[2].

2. Talpykla ir indeksavimas: smėlio dėžės aplinkos talpyklos ir indekso dydis yra mažesnis, palyginti su gamybinėmis aplinkomis. Tai reiškia, kad duomenų bazė gali greitai pasiekti reikiamus duomenis, neperkraunant didelės talpyklos ar indekso, todėl užklausa vykdoma greičiau[2].

3. Aparatinės įrangos konfigūracija: smėlio dėžės aplinkos paprastai sukonfigūruojamos naudojant mažiau galingą aparatinę įrangą, palyginti su gamybos aplinkomis. Tačiau tai taip pat gali prisidėti prie greitesnio užklausų vykdymo, nes duomenų bazė mažiau įkeliama ir gali greičiau reaguoti į užklausas[2].

4. Duomenų suskaidymas: gamybinėse aplinkose dažnai yra fragmentiškų duomenų, todėl užklausa gali būti vykdoma lėčiau. Kita vertus, smėlio dėžės aplinkose yra gretimi duomenys, todėl sumažėja sudėtingų sujungimų poreikis ir pagerėja užklausos našumas[2].

5. Užklausos optimizavimas: smėlio dėžės aplinkos optimizuotos užklausos našumui užtikrinti. Tai apima indeksų ir talpyklos, skirtų pagerinti užklausų vykdymo greitį, naudojimą[2].

Geriausia SOQL užklausų optimizavimo praktika

1. Naudokite indeksuotus laukus: naudokite indeksuotus laukus SOQL užklausų sąlygoje WHERE, kad pagerintumėte užklausos našumą[1].

2. Venkite NULLS: nenaudokite NULLS užklausose, nes tai neleidžia naudoti indeksų[1].

3. Naudokite užklausų filtrus: naudokite užklausų filtrus, kurie gali paryškinti mažiau nei 10 % duomenų, kad pagerintumėte užklausos našumą[1].

4. Venkite pakaitos simbolių: nenaudokite pakaitos simbolių užklausose, pvz., „%“, nes tai neleidžia naudoti indeksų[1].

5. Suskaidyti sudėtingas užklausas: suskaidykite sudėtingas užklausas į paprastas vienaskaitos užklausas, kad galėtumėte efektyviai naudoti indeksus[1].

6. Pasirinkite būtinus laukus: SELECT sakinyje pasirinkite tik būtinus laukus, kad sumažintumėte gaunamų duomenų kiekį ir pagerintumėte užklausos našumą[1].

Vadovaudamiesi šia geriausia praktika ir suprasdami smėlio dėžės ir gamybos aplinkų SOQL užklausų našumo skirtumus, galite optimizuoti savo užklausas, kad „Salesforce“ veiktų ir efektyviau veiktų.

Citatos:
[1] https://www.apexhours.com/large-data-volumes-ldv-in-salesforce/
[2] https://salesforce.stackexchange.com/questions/42163/performance-difference-between-sandbox-and-production-instances
[3] https://coefficient.io/salesforce-tutorials/how-to-run-soql-query-in-salesforce
[4] https://bluecanvas.io/blog/optimizations-for-salesforce-orgs-with-lots-of-data-part-2
[5] https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007T4MRBSA3