Τα ερωτήματα SOQL (Salesforce Object Query Language) μπορούν μερικές φορές να λειτουργούν γρηγορότερα σε περιβάλλον sandbox σε σύγκριση με ένα περιβάλλον παραγωγής λόγω πολλών τεχνικών και επιχειρησιακών παραγόντων που είναι εγγενείς στο πώς τα sandboxes salkince sand -sandboxes δημιουργούνται και διαχειρίζονται. Η κατανόηση αυτών των παραγόντων απαιτεί τη διάθεση σε διαφορές στους όγκους δεδομένων, την ευρετηρίαση, την προσωρινή αποθήκευση, τη διαμάχη των πόρων και τις βελτιστοποιήσεις του συστήματος, ειδικά για τα περιβάλλοντα sandbox έναντι της παραγωγής.
Όγκος και πολυπλοκότητα δεδομένων
Ένας από τους κύριους λόγους για τους οποίους τα ερωτήματα SOQL τρέχουν ταχύτερα σε περιβάλλοντα sandbox είναι η διαφορά στον όγκο των δεδομένων. Τα sandboxes έχουν συνήθως μικρότερα σύνολα δεδομένων από τα περιβάλλοντα παραγωγής, ειδικά εάν είναι μερικοί ή προγραμματιστές sandboxes, τα οποία αντιγράφουν μόνο ένα υποσύνολο των δεδομένων παραγωγής. Αυτός ο μειωμένος όγκος δεδομένων σημαίνει ότι λιγότερα αρχεία πρέπει να σαρώνονται, να ευρετηριάζονται και να επιστρέφονται από ερωτήματα, φυσικά επιταχύνοντας τους χρόνους εκτέλεσης ερωτήματος. Ακόμη και σε πλήρη sandboxes που αντικατοπτρίζουν τα δεδομένα παραγωγής, οι συχνές ανανεώσεις ή στιγμιότυπα μπορεί να σημαίνει ότι τα δεδομένα δεν είναι τόσο ογκώδη ή τόσο συχνά προσπελάσιμα όσο και στην οργάνωση ζωντανής παραγωγής, με αποτέλεσμα καλύτερες επιδόσεις λόγω του χαμηλότερου συνολικού φορτίου του συστήματος.
ευρετηρίαση και εκλεκτικότητα
Η βελτιστοποιητή του Salesforce βασίζεται σε μεγάλο βαθμό στους δείκτες για την επιτάχυνση της εκτέλεσης των ερωτημάτων. Τα ερωτήματα που φιλτράρουν τα ευρετήρια πεδία είναι συχνά πολύ ταχύτερα επειδή το Salesforce μπορεί γρήγορα να περιορίσει το σύνολο αποτελεσμάτων αντί να σαρώνει ολόκληρο το τραπέζι. Σε περιβάλλοντα sandbox, ο βελτιστοποιητής ερωτήματος μπορεί να συμπεριφέρεται πιο αποτελεσματικά επειδή η κατανομή των δεδομένων μπορεί να είναι διαφορετική, επιτρέποντας στους δείκτες να είναι πιο επιλεκτικοί. Για παράδειγμα, εάν ένα sandbox έχει λιγότερες διπλές ή μηδενικές τιμές σε ορισμένα πεδία ευρετηρίου από την παραγωγή, ο βελτιστοποιητής ερωτήματος μπορεί να χρησιμοποιήσει ευρετήρια πιο αποτελεσματικά για να εκτελέσει ταχύτερα ερωτήματα. Επιπλέον, τα περιβάλλοντα sandbox συχνά επιτρέπουν μεγαλύτερη ευελιξία στον πειραματισμό με προσαρμοσμένους δείκτες ή συντονισμό ερωτημάτων χωρίς να επηρεάζουν την παραγωγή, η οποία μπορεί να βελτιστοποιήσει την απόδοση SOQL κατά την ανάπτυξη και τη δοκιμή.
Μειωμένη απομόνωση διαμάχης και πόρων
Τα περιβάλλοντα παραγωγής είναι πολλαπλών μισθωτών και χρησιμοποιούνται έντονα από τους τελικούς χρήστες που εκτελούν διάφορες λειτουργίες ταυτόχρονα, δημιουργώντας ισχυρισμό πόρων. Αυτός ο ισχυρισμός μπορεί να επιβραδύνει την εκτέλεση των ερωτημάτων, καθώς η CPU, η μνήμη και η I/O μοιράζονται μεταξύ πολυάριθμων ταυτόχρονων διαδικασιών. Αντίθετα, τα sandboxes, ειδικά οι προγραμματιστές και οι προγραμματιστές pro sandboxes, τείνουν να έχουν λιγότερους ταυτόχρονους χρήστες και να μειώσουν το συνολικό φορτίο του συστήματος. Αυτή η μείωση της ταυτόχρονης ζήτησης επεξεργασίας σημαίνει ότι τα ερωτήματα μπορούν να αποκτήσουν πρόσβαση σε πόρους πιο εύκολα, μειώνοντας τους χρόνους αναμονής και την επιτάχυνση της εκτέλεσης.
Προσωρινή αποθήκευση και σταθερότητα σχεδίου ερωτήματος
Το Salesforce χρησιμοποιεί εξελιγμένους μηχανισμούς προσωρινής αποθήκευσης ερωτημάτων για τη βελτίωση της απόδοσης. Σε περιβάλλοντα sandbox, ορισμένα αποτελέσματα ερωτήσεων και σχέδια εκτέλεσης μπορούν να αποθηκευτούν προσωρινά, ειδικά εάν επαναλαμβανόμενες δοκιμές ή επαναλήψεις ανάπτυξης εκτελούν τα ίδια ερωτήματα. Αυτό το αποτέλεσμα προσωρινής αποθήκευσης μπορεί να επιταχύνει την απόδοση των ερωτημάτων στις επόμενες διαδρομές. Επιπλέον, επειδή τα δεδομένα Sandbox αλλάζουν λιγότερο συχνά από την παραγωγή, τα σχέδια προσθηκών ερωτημάτων και τα αποτελέσματα παραμένουν έγκυρα, ενισχύοντας την αποτελεσματικότητα των ερωτημάτων. Τα περιβάλλοντα παραγωγής, με τις δυναμικές και συνεχείς αλλαγές δεδομένων τους και τη βαριά συναλλακτική δραστηριότητα, δεν μπορούν να αξιοποιήσουν την προσωρινή αποθήκευση ως αποτελεσματικά, οδηγώντας σε πιο συχνή ανασύσταση των σχεδίων ερωτήσεων και επομένως βραδύτερες επιδόσεις ερωτήματος.
Οριοθετεί ο κυβερνήτης και το πλαίσιο εκτέλεσης
Το Salesforce επιβάλλει τα όρια του κυβερνήτη, συμπεριλαμβανομένου του μέγιστου αριθμού ερωτημάτων SOQL ανά συναλλαγή για τη διατήρηση της σταθερότητας της πλατφόρμας. Στην ανάπτυξη sandboxes, οι προγραμματιστές συχνά διαμορφώνουν και ελέγχουν τα περιβάλλοντα εκτέλεσης πιο προσεκτικά για να αποφευχθούν το χτύπημα αυτών των ορίων, για παράδειγμα με τα ερωτήματα Bulkifying και την επεξεργασία δεδομένων σε παρτίδες. Αυτή η προσεκτική ανάπτυξη και δοκιμή βοηθούν να διατηρήσουν τα ερωτήματα βελτιστοποιημένα πριν από την ανάπτυξη στην παραγωγή. Στην παραγωγή, οι πολύπλοκες επιχειρηματικές διαδικασίες και ενσωματώσεις μπορεί να προκαλέσουν ακούσια υπερβολική ή αναποτελεσματική ερώτηση, οδηγώντας σε βραδύτερες επιδόσεις λόγω των επαναλαμβανόμενων επιτυχιών της βάσης δεδομένων και του χτυπήματος των ορίων του κυβερνήτη. Τα sandboxes παρέχουν έναν ασφαλέστερο χώρο για το σφάλμα και τη βελτιστοποίηση αυτών των ερωτημάτων, αποδίδοντας καλύτερες σχετικές επιδόσεις.
Διαφορές στους κανόνες ανταλλαγής και τις ρυθμίσεις ασφαλείας
Τα περιβάλλοντα sandbox ενδέχεται να έχουν απλοποιήσει ή διαφορετικούς κανόνες κοινής χρήσης και διαμορφώσεις ασφαλείας σε σύγκριση με την παραγωγή. Το Salesforce επιβάλλει κανόνες κοινής χρήσης και ορατότητας στο επίπεδο της βάσης δεδομένων κατά την εκτέλεση των ερωτημάτων. Οι πολύπλοκες υπολογισμοί κοινής χρήσης στην παραγωγή μπορούν να προσθέσουν γενικά έξοδα σε ερωτήματα, ειδικά σε εκείνους που σχετίζονται με την ασφάλεια αντικειμένων και ρεκόρ. Τα sandboxes που χρησιμοποιούνται για ανάπτυξη ή δοκιμές μερικές φορές ανυψώνουν ή απλοποιούν αυτούς τους κανόνες, μειώνοντας την πολυπλοκότητα της εκτέλεσης και επιταχύνοντας έτσι την απόδοση του ερωτήματος SOQL.
Εστίαση δοκιμών και βελτιστοποίησης
Σε περιβάλλοντα sandbox, υπάρχει γενικά η εστίαση στη δοκιμή και τη βελτιστοποίηση. Οι προγραμματιστές και οι διαχειριστές προφίλζουν ενεργά, αναλύουν και βελτιώνουν τα ερωτήματα SOQL χρησιμοποιώντας εργαλεία Salesforce όπως το εργαλείο Plan Plan, τα αρχεία καταγραφής της κονσόλας Developer και τα αρχεία καταγραφής εντοπισμού σφαλμάτων. Κατά συνέπεια, οι βέλτιστες πρακτικές που αποκτήθηκαν κατά τη διάρκεια της ανάπτυξης του sandbox, όπως η επιλογή μόνο των απαραίτητων πεδίων, η εφαρμογή επιλεκτικών φίλτρων, η αποφυγή βρόχων με ερωτήματα μέσα τους, χρησιμοποιώντας σχέσεις και συσσωματώματα, εφαρμόζονται προσεκτικά και ασύγχρονη επεξεργασία (όπως η κορυφή παρτίδας), με αποτέλεσμα ταχύτερα ερωτήματα. Τα περιβάλλοντα παραγωγής ενδέχεται να εξακολουθούν να περιέχουν κληρονομιά ή μη εξειδικευμένα ερωτήματα που υποβαθμίζουν την απόδοση.
Άλλοι παράγοντες που συμβάλλουν
- Δεδομένα Skew: Τα δεδομένα παραγωγής συχνά έχουν λοξές διανομές, όπου ένα μικρό υποσύνολο αρχείων κυριαρχεί στο σύνολο δεδομένων. Αυτή η κλίση μπορεί να υποβαθμίσει την απόδοση των ερωτημάτων νικώντας τις στρατηγικές ευρετηρίασης. Τα sandboxes μπορεί να έχουν λιγότερο λοξή, επιτρέποντας πιο αποτελεσματικά ερωτήματα.
- Κράτος Bin Bin Vacuum and Recycle: Διαγραμμένα αρχεία στον κάδο ανακύκλωσης μπορούν να επηρεάσουν την απόδοση. Οι οργανώσεις παραγωγής έχουν συνήθως έναν πληρέστερο κάδο ανακύκλωσης από τα sandboxes, τα οποία μπορούν να επιβραδύνουν τα ερωτήματα SOQL που έχουν πρόσβαση σε αντικείμενα ή ιστορίες που έχουν σχέση με τα σχετικά αντικείμενα ή ιστορίες.
- Στατιστικά στοιχεία για την υστέρηση αναπαραγωγής και τα ερωτήματα: Το Salesforce's Query Optimizer βασίζεται σε προ -υπολογισμένα στατιστικά στοιχεία που ανανεώνονται περιοδικά. Τα sandboxes, ιδιαίτερα τα πρόσφατα ανανεωμένα, μπορεί να έχουν νέα στατιστικά στοιχεία που επιτρέπουν στον βελτιστοποιητή να επιλέξει καλύτερα σχέδια ερωτήσεων.
- Βελτιώσεις πλατφόρμας: Μερικές φορές το Salesforce αναπτύσσει νέες βελτιώσεις απόδοσης και χαρακτηριστικά πρώτα σε sandboxes για πρώιμες δοκιμές. Αυτό μπορεί να ενισχύσει προσωρινά την απόδοση του Sandbox σε σχέση με τα παλαιότερα περιβάλλοντα παραγωγής.
Συνοπτικά, τα ερωτήματα SOQL εκτελούνται ταχύτερα σε περιβάλλοντα sandbox κυρίως λόγω των μικρότερων και λιγότερο σύνθετων συνόλων δεδομένων, της καλύτερης επιλεκτικότητας του δείκτη, της μειωμένης διαμάχης του συστήματος, της αποτελεσματικής προσωρινής αποθήκευσης, της εστιασμένης βελτιστοποίησης ερωτημάτων κατά τη διάρκεια της ανάπτυξης και των απλούστερων διαμορφώσεων ασφάλειας και κοινής χρήσης. Αυτοί οι συνδυασμένοι παράγοντες δημιουργούν συνθήκες όπου ο βελτιστοποιητής ερωτήματος Salesforce μπορεί να εκτελέσει τα ερωτήματα πιο αποτελεσματικά και όπου οι πόροι είναι πιο εύκολα διαθέσιμοι για τα ερωτήματα επεξεργασίας. Αυτό το περιβάλλον ενισχύει την καλύτερη απόδοση ανέφικτη στην εξαιρετικά φορτωμένη και πολύπλοκη φύση των οργάνων παραγωγής. Έτσι, τα sandboxes χρησιμεύουν τόσο ως παιδική χαρά ανάπτυξης/δοκιμής όσο και ως τόπος συντονισμού απόδοσης πριν από την ανάπτυξη ερωτημάτων και εφαρμογών σε παραγωγή όπου οι απαιτήσεις απόδοσης και οι πολυπλοκότητες των δεδομένων είναι πολύ υψηλότερες. Όλες αυτές οι ιδέες προέρχονται από τις βέλτιστες πρακτικές απόδοσης Salesforce, τις εμπειρίες των προγραμματιστών και τα χαρακτηριστικά της αρχιτεκτονικής της Salesforce.