SOQL (Salesforce Object Query Language) vaicājumi dažreiz var ātrāk darboties smilšu kastes vidē, salīdzinot ar ražošanas vidi, jo vairāku tehnisko un operatīvo faktoru dēļ ir raksturīgi Salesforce smilšu kastes uzstādītas un pārvaldītas. Lai izprastu šos faktorus, ir jāievieš atšķirības datu apjomos, indeksē, kešatmiņā, resursu strīdā un sistēmas optimizācijās, kas raksturīgas smilšu kastes un ražošanas videi.
datu apjoms un sarežģītība
Viens no galvenajiem iemesliem, kāpēc SOQL vaicājumi tiek veikti ātrāk smilšu kastes vidē, ir datu apjoma atšķirība. Smilšu kastēm parasti ir mazākas datu kopas nekā ražošanas videi, it īpaši, ja tās ir daļējas vai izstrādātāju smilšu kastes, kas kopē tikai ražošanas datu apakškopu. Šis samazinātais datu apjoms nozīmē, ka mazāk ierakstu ir jāskenē, indeksē un jāatdod vaicājumi, dabiski paātrinot vaicājuma izpildes laiku. Pat pilnās smilšu kastēs, kas atspoguļo ražošanas datus, biežas atsvaidzes vai momentuzņēmumi varētu nozīmēt, ka dati nav tik apjomīgi vai tik bieži piekļuvei kā tiešraides ražošanas org, kā rezultātā tiek nodrošināta labāka veiktspēja, jo ir zemāka vispārējā sistēmas slodze.
indeksēšana un selektivitāte
Salesforce vaicājuma optimizētājs lielā mērā ir atkarīgs no indeksiem, lai paātrinātu vaicājumu izpildi. Vaicājumi, kas filtrē indeksētos laukos, bieži ir daudz ātrāki, jo Salesforce var ātri sašaurināt rezultātu kopu, nevis skenēt visu tabulu. Smilšu kastes vidē vaicājuma optimizētājs var izturēties efektīvāk, jo datu sadalījums var būt atšķirīgs, ļaujot indeksiem būt selektīvākam. Piemēram, ja smilšu kastei ir mazāk dublikātu vai nulles vērtību noteiktos indeksētos laukos nekā ražošana, vaicājuma optimizētājs var efektīvāk izmantot indeksus, lai ātrāk izpildītu vaicājumus. Turklāt smilšu kastes vide bieži ļauj elastīgāk eksperimentēt ar pielāgotiem indeksiem vai vaicājuma noregulēšanu, neietekmējot ražošanu, kas var optimizēt SOQL veiktspēju izstrādes un testēšanas laikā.
Samazināts apgalvojums un resursu izolācija
Ražošanas vide ir vairāku īrnieku, un to lielā mērā izmanto galalietotāji, kas vienlaikus veic dažādas operācijas, radot resursus. Šis apgalvojums var palēnināt vaicājuma izpilde, jo CPU, atmiņa un I/O ir dalīti starp daudziem vienlaicīgiem procesiem. Turpretī smilšu kastēm, īpaši izstrādātājam un izstrādātājam pro smilšu kastes, parasti ir mazāk vienlaicīgu lietotāju un zemāka kopējā sistēmas slodze. Šis vienlaicīgā apstrādes pieprasījuma samazinājums nozīmē, ka vaicājumi var vieglāk piekļūt resursiem, samazinot gaidīšanas laiku un paātrinot izpildi.
Kešatmiņas un vaicājuma plāna stabilitāte
Salesforce izmanto sarežģītus vaicājumu kešatmiņas mehānismus, lai uzlabotu sniegumu. Smilšu kastes vidē var būt kešatmiņā saglabāti daži vaicājuma rezultāti un izpildes plāni, it īpaši, ja atkārtoti testi vai attīstības iterācijas izpilda tos pašus vaicājumus. Šis kešatmiņas efekts var paātrināt vaicājuma veiktspēju turpmākajos braucienos. Turklāt, tā kā smilšu kastes dati mainās retāk nekā ražošana, kešatmiņā saglabātie vaicājuma plāni un rezultāti joprojām ir spēkā ilgāk, uzlabojot vaicājuma efektivitāti. Ražošanas vide ar to dinamiskajām un nepārtrauktajām datu izmaiņām un smago darījumu aktivitāti nevar izmantot kešatmiņu tikpat efektīvi, izraisot biežāku vaicājumu plānu atkārtotu kompilāciju un tādējādi lēnāku vaicājuma veiktspēju.
Gubernatora ierobežojumi un izpildes konteksts
Salesforce uzliek gubernatora ierobežojumus, ieskaitot maksimālo SOQL vaicājumu skaitu uz vienu darījumu, lai saglabātu platformas stabilitāti. Attīstības smilšu kastēs izstrādātāji bieži uzmanīgāk konfigurē un kontrolē izpildes kontekstus, lai izvairītos no šo robežu sasniegšanas, piemēram, ar lielapjoma jautājumiem un apstrādes datiem partijās. Šī apdomīgā attīstība un pārbaude palīdz lietot jautājumus optimizēt pirms izvietošanas ražošanā. Ražošanā sarežģīti biznesa procesi un integrācija var netīšām izraisīt pārmērīgu vai neefektīvu vaicājumu, izraisot lēnāku veiktspēju atkārtotu datu bāzes trāpījumu dēļ un trāpot gubernatora ierobežojumiem. Smilšu kastes nodrošina drošāku vietu, lai atkļūdotu un optimizētu šos jautājumus, iegūstot labāku relatīvu veiktspēju.
Atšķirības koplietošanas noteikumos un drošības iestatījumos
Smilšu kastes vide, iespējams, ir vienkāršojusi vai atšķirīgus koplietošanas noteikumus un drošības konfigurācijas, salīdzinot ar ražošanu. Salesforce ievieš koplietošanas un redzamības noteikumus datu bāzes līmenī vaicājuma izpildes laikā. Sarežģīti koplietošanas aprēķini ražošanā var pievienot pieskaitāmās izmaksas vaicājumiem, jo īpaši tiem, kas saistīti ar objekta un ierakstu līmeņa drošību. Smilšu kastes, ko izmanto izstrādei vai testēšanai, dažreiz paceļ vai vienkāršo šos noteikumus, samazinot izpildes sarežģītību un tādējādi paātrinot SOQL vaicājuma veiktspēju.
Pārbaudes un optimizācijas fokuss
Smilšu kastes vidē parasti tiek pievērsta uzmanība testēšanai un optimizācijai. Izstrādātāji un administratori aktīvi profilē, analizē un uzlabo SOQL vaicājumus, izmantojot Salesforce rīkus, piemēram, vaicājuma plāna rīku, izstrādātāja konsoles veiktspējas žurnālus un atkļūdošanas žurnālus. Līdz ar to smilšu kastes izstrādes laikā apgūtā paraugprakse, piemēram, tikai nepieciešamie lauku atlasīšana, selektīvu filtru piemērošana, izvairīšanās no cilpām ar vaicājumiem tajos, tiek īstenota attiecību un apkopo pārdomāti, kā arī asinhronās apstrādes (piemēram, partijas virsotne), kā rezultātā tiek veikti ātrāki jautājumi. Ražošanas vidē joprojām var būt mantotie vai neoptimizētie vaicājumi, kas pasliktina veiktspēju.
Citi veicinoši faktori
- Datu šķībs: Ražošanas datiem bieži ir šķībs sadalījums, kur datu kopā dominē neliela ierakstu apakškopa. Šis šķībs var pasliktināt vaicājuma sniegumu, pieveicot indeksēšanas stratēģijas. Smilšu kastēm var būt mazāk šķībs, kas ļauj efektīvākiem vaicājumiem.
- Vakuuma un pārstrādes bin stāvoklis: izdzēsti ieraksti pārstrādes tvertnē var ietekmēt veiktspēju. Ražošanas orgiem parasti ir pilnīgāka pārstrādes atkritumu tvertne nekā smilšu kastēm, kas var palēnināt SOQL vaicājumus, kas piekļūst saistītiem objektiem vai vēsturei.
- Replikācijas nobīde un vaicājuma statistika: Salesforce vaicājumu optimizētājs ir atkarīgs no iepriekšējās periodiski atsvaidzināšanas statistikas. Smilšu kastēm, īpaši jaunizveidotajām, varētu būt svaiga statistika, kas ļauj optimizētājam izvēlēties labākus vaicājuma plānus.
- Platformas uzlabojumi: Dažreiz Salesforce izvieto jaunus veiktspējas uzlabojumus un vispirms ir funkcijas smilšu kastēs agrīnai pārbaudei. Tas uz laiku varētu uzlabot smilšu kastes veiktspēju attiecībā pret vecāku ražošanas vidi.
Rezumējot, SOQL vaicājumi tiek veikti ātrāk smilšu kastes vidē, galvenokārt tāpēc, ka ir mazākas un mazāk sarežģītas datu kopas, labāka indeksa selektivitāte, samazināta sistēmas strīds, efektīva kešatmiņa, koncentrēta vaicājumu optimizācija izstrādes laikā un vienkāršāka drošība un koplietošanas konfigurācija. Šie kombinētie faktori rada apstākļus, kad Salesforce vaicājuma optimizētājs var efektīvāk izpildīt vaicājumus un kur resursi ir vieglāk pieejami vaicājumu apstrādei. Šī vide veicina labāku sniegumu, kas nav sasniedzams ražošanas orgās ļoti noslogotajā un sarežģītajā raksturs. Tādējādi smilšu kastes kalpo gan kā attīstības/testēšanas rotaļu laukums, gan kā veiktspējas noregulēšanas vieta pirms vaicājumu un lietojumprogrammu izvietošanas ražošanā, kur veiktspējas prasības un datu sarežģītība ir daudz augstāka. Visas šīs atziņas tiek gūtas no Salesforce veiktspējas paraugprakses, izstrādātāju pieredzes un Salesforce arhitektūras īpašībām.