Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Zakaj bi lahko SOQL poizvedbe hitreje tekli v okolju peskovnika


Zakaj bi lahko SOQL poizvedbe hitreje tekli v okolju peskovnika


Poizvedbe SOQL (Salesforce Object Arenery) se lahko včasih hitreje izvajajo v okolju peskovnika v primerjavi s proizvodnim okoljem zaradi več tehničnih in operativnih dejavnikov, ki so bistveni za nastavitev in upravljanje peskovnikov Salesforce. Razumevanje teh dejavnikov zahteva, da se vključimo v razlike v količini podatkov, indeksiranju, predpomnjenju, spopadu z viri in optimizacijah sistema, značilnih za peskovnike v primerjavi s proizvodnimi okolji.

Obseg in kompleksnost podatkov

Eden glavnih razlogov, da se poizvedbe SOQL izvajajo hitreje v okolju peskovnika, je razlika v količini podatkov. Peskovniki imajo običajno manjše nabore podatkov kot proizvodna okolja, še posebej, če so delni ali razvijalci peskovnikov, ki kopirajo samo podskupino proizvodnih podatkov. Ta zmanjšana količina podatkov pomeni, da je treba manj zapisov skenirati, indeksirati in vrniti po poizvedbah, kar seveda pospeši čas izvajanja poizvedb. Tudi v polnih peščenih poljih, ki zrcalijo podatke o proizvodnji, pogosti osvežitev ali posnetki lahko pomenijo, da podatki niso tako voluminozni ali tako pogosto dostopni kot pri Org v živo, kar ima za posledico boljšo zmogljivost zaradi nižje skupne sistemske obremenitve.

Indeksiranje in selektivnost

Optimizator poizvedb Salesforce se močno zanaša na indekse, da pospeši izvajanje poizvedb. Poizvedbe, ki filtrirajo na indeksiranih poljih, so pogosto veliko hitrejše, ker lahko Salesforce hitro zoži rezultat, namesto da bi skenirali celotno tabelo. V okoljih v peskovniku se lahko optimizator poizvedb obnaša bolj učinkovito, ker je lahko porazdelitev podatkov drugačna, kar omogoča, da so indeksi bolj selektivni. Na primer, če ima peskovnik v določenih indeksiranih poljih manj podvojenih ali ničelnih vrednosti kot proizvodnja, lahko optimizator poizvedb učinkoviteje uporablja indekse za hitrejše izvajanje poizvedb. Poleg tega okolja s peskovnikom pogosto omogočajo večjo fleksibilnost pri eksperimentiranju z indeksi po meri ali uglaševanje poizvedb, ne da bi to vplivale na proizvodnjo, kar lahko optimizira zmogljivost SOQL med razvojem in testiranjem.

Zmanjšana prepiranje in izolacija virov

Proizvodna okolja so več-najemniki in jih končni uporabniki močno uporabljajo, ki hkrati izvajajo različne operacije, kar ustvarja prepiranje virov. Ta trditev lahko upočasni izvajanje poizvedb, saj se CPU, pomnilnik in V/I delijo med številnimi sočasnimi procesi. V nasprotju s tem imajo peskovniki, zlasti razvijalci in razvijalci Pro SandBoxes, manj hkratnih uporabnikov in nižje skupne sistemske obremenitve. To zmanjšanje sočasnega povpraševanja po obdelavi pomeni, da lahko poizvedbe lažje dostopajo do virov, kar skrajša čakalne dobe in pospeši izvedbo.

Stabilnost predpomnilnika in poizvedbe

Salesforce uporablja prefinjene mehanizme predpomnjenja poizvedb za izboljšanje uspešnosti. V okoljih v peskovniku se lahko predpomnijo nekateri rezultati poizvedb in načrte izvajanja, še posebej, če ponavljajoči se testi ali razvojne iteracije izvajajo iste poizvedbe. Ta učinek predpomnjenja lahko pospeši uspešnost poizvedb na naslednjih poteh. Ker se podatki o peskovniku spreminjajo manj pogosto kot proizvodnja, načrti za predpomnjene poizvedbe in rezultati ostajajo veljavni daljši, kar izboljšuje učinkovitost poizvedb. Proizvodna okolja s svojimi dinamičnimi in neprekinjenimi spremembami podatkov in težkimi transakcijskimi aktivnostmi ne morejo tako učinkovito izkoristiti predpomnjenja, kar vodi do pogostejše ponovne prebolevanja poizvedbenih načrtov in s tem počasnejše zmogljivosti poizvedb.

Omejitve in kontekst guvernerja

Salesforce nalaga meje guvernerja, vključno z največjim številom poizvedb SOQL na transakcijo - za ohranjanje stabilnosti platforme. V razvojnih peskovnikih razvijalci pogosto natančneje konfigurirajo in nadzorujejo izvajanje kontekstov, da se izognejo doseganju teh mej, na primer z vključevanjem poizvedb in obdelavo podatkov v serijah. Ta premišljen razvoj in testiranje pomagata ohranjati optimizirane poizvedbe pred uvajanjem v proizvodnjo. V proizvodnji lahko zapleteni poslovni procesi in integracije nenamerno povzročijo pretirano ali neučinkovito poizvedovanje, kar vodi do počasnejšega delovanja zaradi večkratnih zadetkov baze podatkov in zadetkov regulatorja. Peskovniki zagotavljajo varnejši prostor za odpravljanje napak in optimizacijo teh poizvedb, kar omogoča boljše relativne zmogljivosti.

Razlike v pravilih delitve in varnostnih nastavitvah

Okolje za peskovnike imajo lahko poenostavljena ali drugačna pravila delitve in varnostne konfiguracije v primerjavi s proizvodnjo. Salesforce uveljavlja pravila za skupno rabo in vidnost na ravni baze podatkov med izvajanjem poizvedb. Kompleksni izračuni skupne rabe v proizvodnji lahko dodajo režijske poizvedbe, zlasti tistim, povezanim z varnostjo objekta in rekorda. Peskovniki, ki se uporabljajo za razvoj ali testiranje, včasih dvignejo ali poenostavijo ta pravila, zmanjšajo kompleksnost izvajanja in s tem pospešijo uspešnost poizvedbe SOQL.

Testiranje in optimizacijska osredotočenost

V okoljih v peskovniku se na splošno osredotoča na testiranje in optimizacijo. Razvijalci in skrbniki aktivno profilirajo, analizirajo in izboljšajo poizvedbe SOQL z uporabo orodij Salesforce, kot so orodje za poizvedbe, dnevniki uspešnosti razvijalcev in dnevniki napak. Posledično se najboljše prakse, ki se jih naučijo med razvojem peskovnika, na primer izbira samo potrebnih polj, uporaba selektivnih filtrov, izogibanje zanki s poizvedbami v njih, premišljeno uporabo odnosov in agregatov ter asinhrona obdelava (kot serijski apex), ki se izvajajo, kar ima za posledico hitrejše poizvedbe. Proizvodna okolja lahko še vedno vsebujejo zapuščene ali neoptimizirane poizvedbe, ki poslabšajo delovanje.

Drugi dejavniki

- Podatki Skew: Podatki o proizvodnji imajo pogosto poševne porazdelitve, kjer v naboru podatkov prevladuje majhna podskupina zapisov. Ta nagib lahko poslabša uspešnost poizvedbe s porazom strategij indeksiranja. Peskovniki imajo lahko manj naklona, ​​kar omogoča učinkovitejše poizvedbe.

- Vakuumsko in recikliranje Bin State: Izbrisani zapisi v koš za recikliranje lahko vplivajo na uspešnost. Proizvodne organe imajo običajno polnejši koš za recikliranje kot peskovniki, ki lahko upočasnijo poizvedbe SOQL, ki dostopajo do povezanih predmetov ali zgodovin.

- Statistika zaostajanja in poizvedbe o poizvedbah: Optimizator poizvedb Salesforce se opira na vnaprej izpolnjene statistike, ki se občasno osvežijo. Peskovniki, zlasti na novo osveženi, imajo lahko svežo statistiko, ki omogoča optimizatorju, da izbere boljše poizvedbene načrte.

- Izboljšave platforme: Včasih Salesforce za zgodnje testiranje uvaja nove izboljšave uspešnosti in funkcije najprej v peskovnikih. To bi lahko začasno povečalo zmogljivost peskovnika glede na starejša proizvodna okolja.

Če povzamemo, poizvedbe SOQL delujejo hitreje v okoljih peskovnika, predvsem zaradi manjših in manj zapletenih naborov podatkov, boljše selektivnosti indeksa, zmanjšanega sistema, učinkovitega predpomnjenja, osredotočene optimizacije poizvedb med razvojem in enostavnejših konfiguracij varnosti in skupne rabe. Ti kombinirani dejavniki ustvarjajo pogoje, kjer lahko prodajni optimizator poizvedb izvaja poizvedbe učinkoviteje in kjer so viri lažje na voljo za obdelavo poizvedb. To okolje spodbuja boljše zmogljivosti nedosegljive v zelo obremenjeni in zapleteni naravi proizvodnih org. Peskovniki tako služijo kot razvojno/testiranje igrišča in mesto za uglaševanje zmogljivosti, preden vstavite poizvedbe in aplikacije v proizvodnjo, kjer so potrebe po uspešnosti in zapletenosti podatkov veliko večje. Vsa ta spoznanja so izpeljana iz najboljših praks Salesforce, izkušenj razvijalcev in arhitekturnih značilnosti Salesforce.