Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kodėl „SOQL“ užklausos gali būti greitesnės smėlio dėžės aplinkoje


Kodėl „SOQL“ užklausos gali būti greitesnės smėlio dėžės aplinkoje


„SOQL“ („Salesforce Object“ užklausų kalba) užklausos kartais gali būti greitesnės smėlio dėžės aplinkoje, palyginti su gamybos aplinka, nes dėl kelių techninių ir veiklos veiksnių, būdingų „Salesforce“ smėlio dėžėms, yra nustatyta ir valdoma. Norint suprasti šiuos veiksnius, reikia pasinerti į duomenų kiekio skirtumus, indeksavimą, talpyklos kaupimą, išteklių ginčą ir sistemos optimizavimą, būdingą smėlio dėžei, palyginti su gamybos aplinka.

Duomenų apimtis ir sudėtingumas

Viena iš pagrindinių priežasčių, kodėl SOQL užklausos veikia greičiau smėlio dėžės aplinkoje, yra duomenų apimties skirtumas. Smėlio dėžėse paprastai yra mažesni duomenų rinkiniai nei gamybos aplinka, ypač jei jos yra dalinės ar kūrėjo smėlio dėžės, kurios nukopijuoja tik gamybos duomenų pogrupį. Šis sumažintas duomenų apimtis reiškia, kad mažiau įrašų reikia nuskaityti, indeksuoti ir grąžinti užklausas, natūraliai pagreitindami užklausos vykdymo laiką. Net ir esant visoms smėlio dėžėms, atspindinčioms gamybos duomenis, dažni atnaujinimai ar momentiniai vaizdai gali reikšti, kad duomenys nėra tokie dideli ar dažnai pasiekiami kaip tiesioginės gamybos org, todėl dėl mažesnės bendros sistemos apkrovos yra geresni.

indeksavimas ir selektyvumas

„Salesforce“ užklausų optimizatorius labai priklauso nuo indeksų, kad pagreitintų užklausos vykdymą. Užklausos, filtruojančios indeksuotus laukus, dažnai būna daug greitesnės, nes „Salesforce“ gali greitai susiaurinti rezultatų rinkinį, o ne nuskaityti visą lentelę. Smėlio dėžės aplinkoje užklausų optimizatorius gali elgtis efektyviau, nes duomenų paskirstymas gali būti skirtingas, leidžiantis indeksus būti selektyvesni. Pvz., Jei „Sandbox“ tam tikruose indeksuotuose laukuose yra mažiau dublikatų ar nulinių reikšmių nei gamyba, užklausų optimizatorius gali efektyviau naudoti rodykles, kad greičiau vykdyti užklausas. Be to, „Sandbox“ aplinka dažnai leidžia lanksčiau eksperimentuoti su pasirinktiniais rodyklėmis ar užklausų derinimu, nepaveikdama gamybos, o tai gali optimizuoti SOQL našumą kuriant ir bandant.

Sumažinta ginčų ir išteklių izoliacija

Gamybos aplinka yra daugialypės nuomos sutarties ir labai naudojamos atliekant galutinius vartotojus, atliekančius įvairias operacijas vienu metu, sukuriant išteklių teiginius. Šis teiginys gali sulėtinti užklausos vykdymą kaip CPU, atmintis ir I/O yra dalijamasi tarp daugybės lygiagrečių procesų. Priešingai, „Sandboxes“, ypač kūrėjas ir kūrėjas „Pro Sandbox“, turi mažiau vartotojų vienu metu ir mažesnę bendrą sistemos apkrovą. Šis lygiagrečio apdorojimo paklausos sumažėjimas reiškia, kad užklausos gali lengviau pasiekti išteklius, sutrumpindamos laukimo laiką ir pagreitinti vykdymą.

talpyklos ir užklausų plano stabilumas

„Salesforce“ naudoja sudėtingus užklausų talpyklos talpyklos mechanizmus, skirtus pagerinti našumą. Smėlio dėžės aplinkoje tam tikri užklausų rezultatai ir vykdymo planai gali būti talpykloje, ypač jei pakartotiniai testai ar kūrimo iteracijos vykdo tas pačias užklausas. Šis talpyklos efektas gali pagreitinti užklausos atlikimą vėlesniuose važiavimuose. Be to, kadangi „Sandbox“ duomenys keičiasi rečiau nei gamyba, talpykloje užklausų planai ir rezultatai išlieka ilgesni, padidindami užklausos efektyvumą. Gamybos aplinka, keičiant dinaminius ir nuolatinius duomenų pokyčius ir sunkią operacijų veiklą, negalima naudotis talpyklos kaupimu taip efektyviai, todėl dažnesnis užklausų planų pakartojimas ir tokiu būdu lėtesnis užklausų atlikimas.

Gubernatoriaus ribos ir vykdymo kontekstas

„Salesforce“ nustato gubernatoriaus ribas, įskaitant maksimalų SOQL užklausų skaičių vienam operacijai, kad būtų išlaikytas platformos stabilumas. Kūrybos smėlio dėžėse kūrėjai dažnai atsargiai sukonfigūruoja ir kontroliuoja vykdymo kontekstus, kad išvengtų šių apribojimų, pavyzdžiui, iš dalies atlikdami užklausas ir apdorodami duomenis partijose. Šis sąmoningas tobulinimas ir testavimas padeda prieš diegti gamybą optimizuotų klausimų. Gaminant, sudėtingi verslo procesai ir integracijos gali netyčia sukelti per daug ar neefektyvią užklausą, todėl dėl pakartotinių duomenų bazių įvykių ir pataikymo į gubernatoriaus ribas lėčiau. Smėlio dėžės suteikia saugesnę erdvę derinti ir optimizuoti šias užklausas, suteikdamos geresnį santykinį našumą.

Dalijimosi taisyklių ir saugos nustatymų skirtumai

Smėlio dėžės aplinka, palyginti su gamyba, galėjo būti supaprastintos arba skirtingos dalijimosi taisyklės ir saugos konfigūracijos. „Salesforce“ vykdo dalijimosi ir matomumo taisykles duomenų bazės lygyje vykdant užklausą. Sudėtingos dalijimosi skaičiavimai gamyboje gali pridėti pridėtinių išlaidų prie klausimų, ypač susijusių su objekto ir rekordinio lygio saugumu. Smėlio dėžės, naudojamos plėtrai ar testavimui, kartais pakelia ar supaprastina šias taisykles, sumažindamos vykdymo sudėtingumą ir taip pagreitina SOQL užklausą.

Testavimo ir optimizavimo fokusavimas

Smėlio dėžės aplinkoje paprastai daugiausia dėmesio skiriama testavimui ir optimizavimui. Kūrėjai ir administratoriai aktyviai apibūdina, analizuoja ir tobulina SOQL užklausas, naudodamiesi „Salesforce“ įrankiais, tokiais kaip „Query Plan“ įrankis, kūrėjo konsolės našumo žurnalai ir derinimo žurnalai. Todėl geriausia praktika, išmokta kuriant smėlio dėžę, pavyzdžiui, pasirinkti tik būtinus laukus, pritaikyti selektyvius filtrus, vengti kilpų su užklausomis jų viduje, naudojant ryšius ir agregatus, o asinchroninis apdorojimas (pvz. Gamybos aplinkoje vis dar gali būti senų ar neoptimizuotų užklausų, kurios pablogina našumą.

Kiti prisidedantys veiksniai

- Duomenų iškrypimas: Gamybos duomenys dažnai turi pasvirusių pasiskirstymą, kai duomenų rinkinyje dominuoja nedidelis įrašų pogrupis. Šis iškrypimas gali pabloginti užklausos atlikimą, nugalėdamas indeksavimo strategijas. Smėlio dėžės gali būti mažiau iškreiptos, leisdamos efektyvesnėms užklausoms.

- Vakuuminis ir perdirbimo šiukšliadėžė: Ištrynę įrašai perdirbimo šiukšliadėžėje gali paveikti našumą. Gamybos organizacijos paprastai turi pilnesnę perdirbimo dėžę nei smėlio dėžės, kurios gali sulėtinti SOQL užklausas, kurios pasiekia susijusius objektus ar istorijas.

- Replikacijos atsilikimo ir užklausų statistika: „Salesforce“ užklausų optimizatorius priklauso nuo iš anksto apskaičiuotos statistikos, kuri periodiškai atnaujinama. Smėlio dėžės, ypač naujai atnaujintos, gali turėti šviežią statistiką, leidžiančią optimizuojančiam pasirinkimui pasirinkti geresnius užklausų planus.

- Platformos patobulinimai: Kartais „Salesforce“ diegia naujus našumo patobulinimus ir pirmiausia yra smėlio dėžėse, kad būtų galima anksti bandyti. Tai gali laikinai sustiprinti „Sandbox“ našumą, palyginti su senesne gamybos aplinka.

Apibendrinant galima pasakyti, kad SOQL užklausos greičiau vykdomos „Smėlio dėžės“ aplinkoje, pirmiausia dėl mažesnių ir mažiau sudėtingų duomenų rinkinių, geresnio indekso selektyvumo, sumažintos sistemos ginčų, efektyvaus talpyklos talpyklos, sutelktos užklausų optimizavimo plėtros metu, paprastesnę saugumą ir dalijimąsi konfigūracijomis. Šie kombinuoti veiksniai sukuria sąlygas, kai „Salesforce“ užklausų optimizatorius gali efektyviau vykdyti užklausas ir kur ištekliai yra lengviau prieinami užklausoms apdoroti. Ši aplinka skatina geresnį našumą nepasiekiamą labai pakrautame ir sudėtingame gamybos orgų pobūdyje. Taigi smėlio dėžės yra ir kūrimo/bandymo žaidimų aikštelė, ir vieta, skirta atlikti našumo derinimą prieš diegdamos užklausas ir programas, kur gaminti, kur našumo reikalavimai ir duomenų sudėtingumas yra daug didesnis. Visos šios įžvalgos yra atkreiptos iš „Salesforce Performance“ geriausios praktikos, kūrėjų patirties ir „Salesforce“ architektūros charakteristikų.