Το Oracle Analytics Cloud διατηρεί μια τοπική κρυφή μνήμη με σύνολα αποτελεσμάτων ερωτημάτων στην κρυφή μνήμη ερωτημάτων.
Θέματα:
Η κρυφή μνήμη ερωτημάτων επιτρέπει στο Oracle Analytics Cloud να ικανοποιήσει πολλά επακόλουθα αιτήματα ερωτημάτων χωρίς να απαιτείται πρόσβαση στις προελεύσεις δεδομένων παρασκηνίου, γεγονός που βελτιώνει την απόδοση των ερωτημάτων. Ωστόσο, η κρυφή μνήμη ερωτημάτων ενδεχομένως να γίνει παρωχημένη καθώς γίνονται ενημερώσεις στις προελεύσεις δεδομένων παρασκηνίου.
Ο πιο γρήγορος τρόπος για την επεξεργασία ενός ερωτήματος είναι η παράλειψη του μεγαλύτερου μέρους της επεξεργασίας και η χρήση μιας προϋπολογισμένης απάντησης.
Με την αποθήκευση ερωτημάτων στην κρυφή μνήμη, το Oracle Analytics Cloud αποθηκεύει τα προϋπολογισμένα αποτελέσματα ερωτημάτων σε μια τοπική κρυφή μνήμη. Αν ένα άλλο ερώτημα μπορεί να χρησιμοποιήσει αυτά τα ερωτήματα, τότε η ανάγκη επεξεργασίας της βάσης δεδομένων για το συγκεκριμένο ερώτημα εξαλείφεται εξολοκλήρου. Αυτό μπορεί να οδηγήσει σε σημαντικές βελτιώσεις στον μέσο χρόνο απόκρισης σε ερωτήματα.
Εκτός από τη βελτίωση της απόδοσης, η δυνατότητα απάντησης ενός ερωτήματος από μια τοπική κρυφή μνήμη εξοικονομεί πόρους δικτύου και χρόνο επεξεργασίας στον server της βάσης δεδομένων. Οι πόροι δικτύου εξοικονομούνται διότι τα ενδιάμεσα αποτελέσματα δεν επιστρέφονται στο Oracle Analytics Cloud. Η αποφυγή εκτέλεσης του ερωτήματος στη βάση δεδομένων αποδεσμεύει τον server της βάσης δεδομένων για την εκτέλεση άλλων εργασιών. Αν η βάση δεδομένων χρησιμοποιεί ένα σύστημα charge back, τότε η εκτέλεση λιγότερων ερωτημάτων μπορεί επίσης να μειώσει το κόστος στον προϋπολογισμό.
Ένα άλλο πλεονέκτημα της χρήσης της κρυφής μνήμης για την απάντηση ενός ερωτήματος είναι η εξοικονόμηση χρόνου επεξεργασίας στο Oracle Analytics Cloud, ειδικά αν τα αποτελέσματα ερωτήματος ανακτώνται από πολλές βάσεις δεδομένων. Ανάλογα με το ερώτημα, μπορεί να περιλαμβάνεται σημαντική επεξεργασία συνένωσης και ταξινόμησης στον server. Αν το ερώτημα είναι ήδη υπολογισμένο, τότε αυτή η επεξεργασία αποφεύγεται, αποδεσμεύοντας πόρους στον server για άλλες εργασίες.
Συνοψίζοντας, η αποθήκευση ερωτημάτων στην κρυφή μνήμη μπορεί να βελτιώσει σημαντικά την απόδοση των ερωτημάτων και να μειώσει την κυκλοφορία στο δίκτυο, την επεξεργασία της βάσης δεδομένων και την επιβάρυνση από την επεξεργασία.
Η αποθήκευση ερωτημάτων στην κρυφή μνήμη έχει πολλά εμφανή πλεονεκτήματα αλλά και κάποιο κόστος.
Πιθανότητα τα προσωρινά αποθηκευμένα αποτελέσματα να είναι παρωχημένα
Διαχειριστικό κόστος για τη διαχείριση της κρυφής μνήμης
Σε ό,τι αφορά τη διαχείριση της κρυφής μνήμης, τα πλεονεκτήματα συνήθως υπερκαλύπτουν κατά πολύ το κόστος.
Ορισμένες διαχειριστικές εργασίες συσχετίζονται με την αποθήκευση στην κρυφή μνήμη. Πρέπει να ορίσετε τον χρόνο διατήρησης της κρυφής μνήμης για κάθε φυσικό πίνακα ανάλογα, έχοντας επίγνωση της συχνότητας ενημέρωσης των δεδομένων στον συγκεκριμένο πίνακα.
Όταν η συχνότητα ενημέρωσης ποικίλλει, πρέπει να παρακολουθείτε πότε συμβαίνουν αλλαγές και να εκκαθαρίζετε μόνοι σας την κρυφή μνήμη όταν απαιτείται.
Αν οι καταχωρίσεις κρυφής μνήμης δεν εκκαθαρίζονται όταν αλλάζουν τα δεδομένα στις υποκείμενες βάσεις δεδομένων, τότε υπάρχει η πιθανότητα τα ερωτήματα να επιστρέφουν αποτελέσματα που δεν είναι ενημερωμένα.
Πρέπει να αξιολογήσετε εάν κάτι τέτοιο είναι αποδεκτό. Ενδεχομένως να είναι αποδεκτό να επιτρέπεται να περιέχει ορισμένα παρωχημένα δεδομένα η κρυφή μνήμη. Πρέπει να αποφασίσετε το επίπεδο παρωχημένων δεδομένων που θεωρείται αποδεκτό και κατόπιν να διαμορφώσετε (και να τηρείτε) ένα σύνολο κανόνων που αντικατοπτρίζει αυτά τα επίπεδα.
Για παράδειγμα, ας υποθέσουμε ότι μια εφαρμογή αναλύει εταιρικά δεδομένα από μια μεγάλη πολυεθνική και εσείς εκτελείτε ετήσιες συνόψεις των διαφορετικών τμημάτων στην εταιρεία. Τα νέα δεδομένα δεν επηρεάζουν ουσιαστικά τα ερωτήματα καθώς τα νέα δεδομένα επηρεάζουν μόνο τις συνόψεις του επόμενου έτους. Σε αυτήν την περίπτωση, τα πλεονεκτήματα σε σχέση με τα μειονεκτήματα της απόφασης εκκαθάρισης της κρυφής μνήμης ενδεχομένως να ευνοούν τη διατήρηση των καταχωρίσεων στην κρυφή μνήμη.
Ας υποθέσουμε, ωστόσο, ότι οι βάσεις δεδομένων ενημερώνονται τρεις φορές την ημέρα και εκτελείτε ερωτήματα με βάση τις δραστηριότητες της τρέχουσας ημέρας. Σε αυτήν την περίπτωση, πρέπει να εκκαθαρίζετε την κρυφή μνήμη συχνότερα ή να εξετάσετε το ενδεχόμενο να μην χρησιμοποιείτε καθόλου την κρυφή μνήμη.
Ένα άλλο σενάριο είναι ότι δημιουργείτε εκ νέου το σύνολο δεδομένων από την αρχή κατά περιοδικά διαστήματα (για παράδειγμα, μία φορά την εβδομάδα). Σε αυτό το παράδειγμα, μπορείτε να εκκαθαρίσετε ολόκληρη την κρυφή μνήμη ως μέρος της διαδικασίας αναδημιουργίας του συνόλου δεδομένων, εξασφαλίζοντας έτσι ότι δεν θα έχετε ποτέ παρωχημένα δεδομένα στην κρυφή μνήμη.
Ανεξάρτητα από την περίπτωσή σας, πρέπει να αξιολογήσετε τι θεωρείται αποδεκτό όσον αφορά τις μη ενημερωμένες πληροφορίες που επιστρέφονται στους χρήστες.
Αν είναι ενεργοποιημένη η κοινόχρηστη σύνδεση για έναν συγκεκριμένο χώρο συγκέντρωσης συνδέσεων, τότε είναι δυνατή η κοινή χρήση της κρυφής μνήμης μεταξύ των χρηστών και δεν απαιτείται η τροφοδότησή της για κάθε χρήστη.
Αν η κοινόχρηστη σύνδεση δεν είναι ενεργοποιημένη και χρησιμοποιείται συγκεκριμένη σύνδεση στη βάση δεδομένων για κάθε χρήστη, τότε κάθε χρήστης δημιουργεί τη δική του καταχώριση στην κρυφή μνήμη.
Στο Oracle Analytics Cloud, η κρυφή μνήμη ερωτημάτων είναι ενεργοποιημένη από προεπιλογή. Μπορείτε να ενεργοποιήσετε ή να απενεργοποιήσετε την αποθήκευση ερωτημάτων στην κρυφή μνήμη από τη σελίδα "Ρυθμίσεις συστήματος".
Για να διαχειρίζεστε τις αλλαγές στις υποκείμενες βάσεις δεδομένων και να παρακολουθείτε τις καταχωρίσεις στην κρυφή μνήμη, πρέπει να αναπτύξετε μια στρατηγική διαχείρισης της κρυφής μνήμης.
Χρειάζεστε μια διαδικασία με την οποία να ακυρώνετε καταχωρίσεις κρυφής μνήμη όταν τα δεδομένα στους υποκείμενους πίνακες που απαρτίζουν την καταχώριση κρυφής μνήμης αλλάζουν, καθώς και μια διαδικασία για να παρακολουθείτε, να προσδιορίζετε και να καταργείτε ανεπιθύμητες καταχωρίσεις στην κρυφή μνήμη.
Η ενότητα αυτή περιέχει τα εξής θέματα:
Η επιλογή μιας στρατηγικής διαχείρισης της κρυφής μνήμης εξαρτάται από τη μεταβλητότητα των δεδομένων στις υποκείμενες βάσεις δεδομένων και τη δυνατότητα πρόβλεψης των αλλαγών που προκαλούν αυτήν τη μεταβλητότητα.
Εξαρτάται επίσης από τον αριθμό και τον τύπο των ερωτημάτων που απαρτίζουν την κρυφή μνήμη σας και τη χρήση που δέχονται αυτά τα ερωτήματα. Αυτή η ενότητα παρέχει μια επισκόπηση των διαφόρων προσεγγίσεων στη διαχείριση της κρυφής μνήμης.
Μπορείτε να απενεργοποιήσετε την αποθήκευση στην κρυφή μνήμη για ολόκληρο το σύστημα, προκειμένου να σταματήσετε όλες τις νέες καταχωρίσεις στην κρυφή μνήμη και να σταματήσετε τη χρήση της υπάρχουσας κρυφής μνήμης από τυχόν νέα ερωτήματα. Η απενεργοποίηση της αποθήκευσης στην κρυφή μνήμη σάς επιτρέπει να την ενεργοποιήσετε αργότερα χωρίς να χάσετε τις καταχωρίσεις που είναι αποθηκευμένες στην κρυφή μνήμη.
Η προσωρινή απενεργοποίηση της αποθήκευσης στην κρυφή μνήμη είναι μια χρήσιμη στρατηγική σε περιπτώσεις όπου υποψιάζεστε ότι υπάρχουν παρωχημένες καταχωρίσεις κρυφής μνήμης, αλλά θέλετε να επιβεβαιώσετε αν όντως είναι παρωχημένες προτού εκκαθαρίσετε αυτές τις καταχωρίσεις ή ολόκληρη την κρυφή μνήμη. Αν εξακριβώσετε ότι τα δεδομένα που είναι αποθηκευμένα στην κρυφή μνήμη εξακολουθούν να είναι συναφή, ή αφού εκκαθαρίσετε με ασφάλεια τις προβληματικές καταχωρίσεις, μπορείτε να ενεργοποιήσετε με ασφάλεια την κρυφή μνήμη. Αν είναι απαραίτητο, εκκαθαρίστε ολόκληρη την κρυφή μνήμη που συσχετίζεται με ένα συγκεκριμένο επιχειρηματικό μοντέλο προτού ενεργοποιήσετε ξανά την κρυφή μνήμη.
Μπορείτε να ορίσετε ένα χαρακτηριστικό με δυνατότητα αποθήκευσης στην κρυφή μνήμη για κάθε φυσικό πίνακα και με αυτόν τον τρόπο να έχετε τη δυνατότητα να καθορίσετε αν τα ερωτήματα για τον συγκεκριμένο πίνακα θα προστίθενται στην κρυφή μνήμη για την απάντηση μελλοντικών ερωτημάτων.
Αν ενεργοποιήσετε την αποθήκευση στην κρυφή μνήμη, τότε οποιοδήποτε ερώτημα που αφορά τον πίνακα προστίθεται στην κρυφή μνήμη. Από προεπιλογή, όλοι οι πίνακες διαθέτουν δυνατότητα αποθήκευσης στην κρυφή μνήμη, αλλά ορισμένοι πίνακες μπορεί να μην είναι καλοί υποψήφιοι για συμπερίληψη στην κρυφή μνήμη εκτός αν χρησιμοποιείτε κατάλληλες ρυθμίσεις χρόνου διατήρησης στην κρυφή μνήμη. Για παράδειγμα, ας υποθέσουμε ότι έχετε έναν πίνακα που αποθηκεύει δεδομένα κυλιόμενης ταινίας μετοχών και ενημερώνεται κάθε λεπτό. Μπορείτε να καθορίσετε ότι θέλετε να εκκαθαρίζετε τις καταχωρίσεις για τον συγκεκριμένο πίνακα κάθε 59 δευτερόλεπτα.
Μπορείτε επίσης να χρησιμοποιήσετε τις ρυθμίσεις χρόνου διατήρησης στην κρυφή μνήμη, για να καθορίσετε τη διάρκεια αποθήκευσης των καταχωρίσεων για αυτόν τον πίνακα στην κρυφή μνήμη ερωτημάτων. Αυτό είναι χρήσιμο για προελεύσεις δεδομένων που ενημερώνονται συχνά.
Στο Model Administration Tool, κάντε διπλό κλικ στον φυσικό πίνακα στην ενότητα Φυσικό επίπεδο.
Αν χρησιμοποιείτε το Semantic Modeler, ανατρέξτε στην ενότητα Ποιες είναι οι γενικές ιδιότητες ενός φυσικού πίνακα;.
Στο παράθυρο διαλόγου ιδιοτήτων Φυσικός πίνακας, στην καρτέλα Γενικά, κάντε μία από τις ακόλουθες επιλογές:
Για να ενεργοποιήσετε την αποθήκευση στην κρυφή μνήμη, επιλέξτε Δυνατότητα αποθήκευσης στην κρυφή μνήμη.
Για να αποτρέψετε την αποθήκευση ενός πίνακα στην κρυφή μνήμη, καταργήστε την επιλογή Δυνατότητα αποθήκευσης στην κρυφή μνήμη.
Για να ορίσετε χρόνο λήξης στην κρυφή μνήμη, καθορίστε μια τιμή στην επιλογή Χρόνος διατήρησης κρυφής μνήμης και καθορίσετε μια μονάδα μέτρησης (ημέρες, ώρες, λεπτά ή δευτερόλεπτα). Αν δεν θέλετε να λήγουν αυτόματα οι καταχωρίσεις στην κρυφή μνήμη, επιλέξτε Η κρυφή μνήμη δεν λήγει ποτέ.
Κάντε κλικ στην επιλογή OK.
Όταν τροποποιείτε σημασιολογικά μοντέλα χρησιμοποιώντας το Semantic Modeler ή το Model Administration Tool, οι αλλαγές ενδέχεται να έχουν επιπτώσεις στις καταχωρίσεις που είναι αποθηκευμένες στην κρυφή μνήμη. Για παράδειγμα, εάν αλλάξετε τον ορισμό ενός φυσικού αντικειμένου ή μιας δυναμικής μεταβλητής σημασιολογικού μοντέλου, οι καταχωρήσεις ενδιάμεσης μνήμης που παραπέμπουν σε αυτό το αντικείμενο ή τη μεταβλητή ενδεχομένως να μην είναι πλέον έγκυρες. Αυτές οι αλλαγές μπορεί να οδηγήσουν στην ανάγκη εκκαθάρισης της κρυφής μνήμης. Υπάρχουν δύο σενάρια που πρέπει να έχετε υπόψη σας: ένα όταν τροποποιείτε το υπάρχον σημασιολογικό μοντέλο σας και ένα όταν δημιουργείτε (ή αποστέλλετε) ένα νέο σημασιολογικό μοντέλο.
Αλλαγές στο σημασιολογικό μοντέλο
Όταν τροποποιείτε ένα σημασιολογικό μοντέλο ή κάνετε αποστολή ενός διαφορετικού αρχείου .rpd, τυχόν αλλαγές που κάνετε οι οποίες επηρεάζουν τις καταχωρίσεις στην ενδιάμεση μνήμη έχουν ως αποτέλεσμα την αυτόματη εκκαθάριση όλων των καταχωρίσεων ενδιάμεσης μνήμης που αναφέρονταν στα τροποποιημένα αντικείμενα. Η εκκαθάριση πραγματοποιείται όταν αποστέλλετε τις αλλαγές. Για παράδειγμα, αν διαγράψετε έναν φυσικό πίνακα από ένα σημασιολογικό μοντέλο, τότε γίνεται εκκαθάριση της κρυφής μνήμης από όλες τις καταχωρίσεις κρυφής μνήμης που αναφέρονται στον συγκεκριμένο πίνακα. Οποιεσδήποτε αλλαγές γίνονται σε ένα σημασιολογικό μοντέλο στο λογικό επίπεδο έχουν σαν αποτέλεσμα την εκκαθάριση της κρυφής μνήμης από όλες τις καταχωρίσεις για το συγκεκριμένο σημασιολογικό μοντέλο.
Μεταβολές σε Καθολικές μεταβλητές σημασιολογικού μοντέλου
Οι τιμές των δυναμικών μεταβλητών σημασιολογικού μοντέλου ανανεώνονται βάσει των δεδομένων που επιστρέφονται από ερωτήματα. Όταν ορίζετε μια δυναμική μεταβλητή σημασιολογικού μοντέλου, δημιουργείτε ένα μπλοκ αρχικοποίησης ή χρησιμοποιείτε ένα προϋπάρχον που περιέχει ένα ερώτημα SQL. Διαμορφώνετε επίσης ένα χρονοδιάγραμμα για την εκτέλεση του ερωτήματος και την περιοδική ανανέωση της τιμής της μεταβλητής.
Εάν η τιμή μιας δυναμικής μεταβλητής σημασιολογικού μοντέλου μεταβληθεί, τότε οποιαδήποτε καταχώρηση ενδιάμεσης μνήμης που χρησιμοποιεί αυτήν τη μεταβλητή σε μια στήλη γίνεται παρωχημένη και δημιουργείται μια νέα καταχώρηση ενδιάμεσης μνήμης όταν χρειαστούν ξανά δεδομένα στη συγκεκριμένη καταχώρηση. Η παλιά καταχώριση κρυφής μνήμης δεν καταργείται αμέσως, αλλά διατηρείται έως ότου να εκκαθαριστεί μέσω του συνηθισμένου μηχανισμού αποθήκευσης στην κρυφή μνήμη.
Ένα από τα κύρια πλεονεκτήματα της αποθήκευσης ερωτημάτων στην κρυφή μνήμη είναι η βελτίωση της εμφανούς απόδοσης των ερωτημάτων.
Η αποθήκευση ερωτημάτων στην κρυφή μνήμη μπορεί να είναι πολύτιμη για την τροφοδότηση της κρυφής μνήμης εκτός εργάσιμων ωρών με την εκτέλεση ερωτημάτων και την αποθήκευση των αποτελεσμάτων τους στην κρυφή μνήμη. Μια καλή στρατηγική τροφοδότησης προϋποθέτει να γνωρίζετε πότε προκύπτουν επιτυχείς εντοπισμοί εγγραφών στην κρυφή μνήμη.
Αν θέλετε να τροφοδοτείτε την κρυφή μνήμη για όλους τους χρήστες, μπορείτε να τροφοδοτήσετε την κρυφή μνήμη με το ακόλουθο ερώτημα:
SELECT User, SRs
Μετά την τροφοδότηση της κρυφής μνήμης με χρήση του SELECT User, SRs
, τα ακόλουθα ερωτήματα εντοπίζουν με επιτυχία εγγραφές στην κρυφή μνήμη:
SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER1) SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER2) SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER3)
Η ενότητα αυτή περιέχει τα εξής θέματα:
Όταν είναι ενεργοποιημένη η αποθήκευση στην κρυφή μνήμη, κάθε ερώτημα αξιολογείται για να προσδιοριστεί εάν πληροί τις προϋποθέσεις για επιτυχή εντοπισμό εγγραφής στην κρυφή μνήμη.
Ο επιτυχής εντοπισμός εγγραφής στην κρυφή μνήμη σημαίνει ότι το Oracle Analytics Cloud μπόρεσε να χρησιμοποιήσει την κρυφή μνήμη για να απαντήσει στο ερώτημα και δεν χρειάστηκε να μεταβεί στη βάση δεδομένων. Το Oracle Analytics Cloud μπορεί να χρησιμοποιήσει την κρυφή μνήμη ερωτημάτων για να απαντήσει ερωτήματα του ίδιου ή υψηλότερου επιπέδου συγκέντρωσης.
Υπάρχουν πολλοί παράγοντες που καθορίζουν τη δυνατότητα επιτυχούς εντοπισμού εγγραφής στη μνήμη. Ο παρακάτω πίνακας περιγράφει αυτούς τους παράγοντες.
Παράγοντας ή κανόνας | Περιγραφή |
---|---|
Πρέπει να αντιστοιχεί ένα υποσύνολο των στηλών στη λίστα |
Όλες οι στήλες στη λίστα Αυτός ο κανόνας περιγράφει την ελάχιστη απαίτηση για τον εντοπισμό εγγραφής στην κρυφή μνήμη, αλλά η ικανοποίηση αυτού του κανόνα δεν εγγυάται τον επιτυχή εντοπισμό της στην κρυφή μνήμη. Ισχύουν επίσης οι υπόλοιποι κανόνες που αναφέρονται σε αυτόν τον πίνακα. |
Οι στήλες στη λίστα |
Το Oracle Analytics Cloud μπορεί να υπολογίσει εκφράσεις βάσει των προσωρινά αποθηκευμένων αποτελεσμάτων για να απαντήσει στο νέο ερώτημα, αλλά όλες οι στήλες πρέπει να περιλαμβάνονται στο προσωρινά αποθηκευμένο αποτέλεσμα. Για παράδειγμα, το ερώτημα: SELECT product, month, averageprice FROM sales WHERE year = 2000 εντοπίζει επιτυχώς εγγραφή στην κρυφή μνήμη βάσει του ερωτήματος: SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 διότι το |
Ο όρος |
Για να θεωρηθεί το ερώτημα επιτυχής εντοπισμός εγγραφής στην κρυφή μνήμη, οι περιορισμοί του όρου Ένας όρος
Επιπλέον, οι στήλες που χρησιμοποιούνται στον όρο SELECT employeename FROM employee, geography WHERE region in ('EAST', 'WEST') Δεν καταλήγει σε επιτυχή εντοπισμό εγγραφής στην κρυφή μνήμη για το ερώτημα τροφοδότησης στην προηγούμενη λίστα επειδή το REGION δεν υπάρχει στη λίστα προβολής. |
Τα ερωτήματα αποκλειστικά βάσει διαστάσεων πρέπει να αντιστοιχούν ακριβώς |
Αν ένα ερώτημα βασίζεται αποκλειστικά σε διαστάσεις, το οποίο σημαίνει ότι δεν περιλαμβάνονται δεδομένα ή μετρήσεις στο ερώτημα, τότε μόνο μιας ακριβής αντιστοίχιση των στηλών προβολής του προσωρινά αποθηκευμένου ερωτήματος εντοπίζει επιτυχώς εγγραφή στην κρυφή μνήμη. Αυτή η συμπεριφορά αποτρέπει τα ψευδή θετικά αποτελέσματα όταν υπάρχουν πολλές λογικές προελεύσεις για έναν πίνακα διαστάσεων. |
Τα ερωτήματα με ειδικές συναρτήσεις πρέπει να αντιστοιχούν ακριβώς |
Άλλα ερωτήματα που περιέχουν ειδικές συναρτήσεις όπως συναρτήσεις χρονικής σειράς ( |
Τα σύνολα λογικών πινάκων πρέπει να αντιστοιχούν |
Για να πληρούν τις προϋποθέσεις ως επιτυχής εντοπισμός εγγραφής στην κρυφή μνήμη, όλα τα εισερχόμενα ερωτήματα πρέπει να έχουν το ίδιο σύνολο λογικών πινάκων με την καταχώριση κρυφής μνήμης. Με αυτόν τον κανόνα αποφεύγονται οι ψευδώς θετικοί εντοπισμοί εγγραφών στην κρυφή μνήμη. Για παράδειγμα, το |
Οι τιμές μεταβλητών περιόδου σύνδεσης πρέπει να αντιστοιχούν, συμπεριλαμβανομένων των μεταβλητών περιόδου σύνδεσης ασφαλείας |
Αν η λογική δήλωση SQL ή η φυσική δήλωση SQL αναφέρεται σε οποιαδήποτε μεταβλητή περιόδου σύνδεσης, τότε οι τιμές της μεταβλητής περιόδου σύνδεσης πρέπει να αντιστοιχούν. Διαφορετικά, δεν γίνεται επιτυχής εντοπισμός εγγραφής στην κρυφή μνήμη. Επιπλέον, η τιμή των μεταβλητών περιόδου λειτουργίας που αφορούν στην ασφάλεια πρέπει να αντιστοιχούν στις τιμές των μεταβλητών περιόδου λειτουργίας ασφαλείας που ορίζονται στο σημασιολογικό μοντέλο, ακόμα και εάν η ίδια η λογική δήλωση SQL δεν παραπέμπει σε μεταβλητές περιόδου λειτουργίας. Ανατρέξτε στην ενότητα Διασφαλίστε σωστά αποτελέσματα κρυφής μνήμης κατά τη χρήση ασφάλειας βάσης δεδομένων επιπέδου σειρών. |
Συνθήκες ισότιμης συνένωσης |
Ο συνενωμένος λογικός πίνακας που προκύπτει για ένα νέο ερώτημα πρέπει να είναι ίδιος με τα προσωρινά αποθηκευμένα αποτελέσματα (ή ένα υποσύνολο αυτών) για να πληροί τις προϋποθέσεις για επιτυχή εντοπισμό εγγραφής στην κρυφή μνήμη. |
Το χαρακτηριστικό |
Αν ένα προσωρινά αποθηκευμένο ερώτημα εξαλείφει τις διπλότυπες εγγραφές μέσω της επεξεργασίας |
Τα ερωτήματα πρέπει να περιλαμβάνουν συμβατά επίπεδα συγκέντρωσης |
Τα ερωτήματα που ζητούν συγκεντρωτικές πληροφορίες συγκεκριμένου επιπέδου μπορούν να χρησιμοποιήσουν τα προσωρινά αποθηκευμένα αποτελέσματα σε χαμηλότερο επίπεδο συγκέντρωσης. Για παράδειγμα, το ακόλουθο ερώτημα ζητά την ποσότητα που πωλήθηκε σε επίπεδο προμηθευτή, περιοχής και πόλης: SELECT supplier, region, city, qtysold FROM suppliercity Το ακόλουθο ερώτημα ζητά την ποσότητα που πωλήθηκε σε επίπεδο πόλης: SELECT city, qtysold FROM suppliercity Το δεύτερο ερώτημα καταλήγει σε επιτυχή εντοπισμό εγγραφής στην κρυφή μνήμη με βάση το πρώτο ερώτημα. |
Περιορισμένη πρόσθετη συγκέντρωση |
Για παράδειγμα, αν ένα ερώτημα με τη στήλη |
Ο όρος |
Τα ερωτήματα που κάνουν ταξινόμηση κατά στήλη και δεν περιέχονται στη λίστα επιλογής καταλήγουν σε αστοχίες εντοπισμού στην κρυφή μνήμη. |
Διάγνωση συμπεριφοράς επιτυχούς εντοπισμού εγγραφής στην κρυφή μνήμη |
Για καλύτερη εκτίμηση της συμπεριφοράς επιτυχούς εντοπισμού εγγραφής στην κρυφή μνήμη, ορίστε τη μεταβλητή περιόδου σύνδεσης ENABLE_CACHE_DIAGNOSTICS στην τιμή 4, όπως φαίνεται στο ακόλουθο παράδειγμα: ENABLE_CACHE_DIAGNOSTICS=4 |
Κατά τη χρήση μιας στρατηγικής ασφάλειας βάσης δεδομένων σε επίπεδο σειρών, όπως το Virtual Private Database (VPD), τα αποτελέσματα δεδομένων που επιστρέφονται εξαρτώνται από τα διαπιστευτήρια εξουσιοδότησης του χρήστη.
Για αυτόν τον λόγο, το Oracle Analytics Cloud πρέπει να γνωρίζει αν η προέλευση δεδομένων χρησιμοποιεί ασφάλεια βάσης δεδομένων επιπέδου σειρών και ποιες μεταβλητές σχετίζονται με την ασφάλεια.
Για να διασφαλίσετε ότι στην κρυφή μνήμη εντοπίζονται μόνο καταχωρίσεις που περιλαμβάνουν και συμφωνούν με όλες τις σχετικές με την ασφάλεια μεταβλητές, πρέπει να διαμορφώσετε σωστά το αντικείμενο βάσης δεδομένων και τα αντικείμενα μεταβλητών περιόδου σύνδεσης στο Model Administration Tool ως εξής:
Αντικείμενο βάσης δεδομένων. Στο "Φυσικό επίπεδο", στην καρτέλα "Γενικά" του παραθύρου διαλόγου "Βάση δεδομένων", επιλέξτε Virtual Private Database για να καθορίσετε ότι η προέλευση δεδομένων χρησιμοποιεί ασφάλεια βάσης δεδομένων επιπέδου σειρών.
Αν χρησιμοποιείτε ασφάλεια βάσης δεδομένων επιπέδου σειρών με κοινόχρηστη αποθήκευση στην κρυφή μνήμη, τότε πρέπει να ορίσετε αυτήν την επιλογή, για να αποτρέψετε την κοινή χρήση καταχωρίσεων κρυφής μνήμης των οποίων οι μεταβλητές ασφάλειας δεν συμφωνούν.
Αντικείμενο μεταβλητής περιόδου σύνδεσης. Για μεταβλητές που αφορούν την ασφάλεια, στο παράθυρο διαλόγου "Μεταβλητή περιόδου σύνδεσης", επιλέξτε Αφορά την ασφάλεια για να τις προσδιορίσετε ως σχετικές με την ασφάλεια κατά τη χρήση μιας στρατηγικής ασφάλειας βάσης δεδομένων σε επίπεδο σειρών. Αυτή η επιλογή διασφαλίζει ότι οι καταχωρίσεις κρυφής μνήμης επισημαίνονται με τις μεταβλητές που αφορούν την ασφάλεια, επιτρέποντας την αντιστοίχιση των μεταβλητών που αφορούν την ασφάλεια σε όλα τα εισερχόμενα ερωτήματα.
Για να μεγιστοποιήσετε τους δυνητικούς επιτυχείς εντοπισμούς εγγραφών στην κρυφή μνήμη, μία στρατηγική είναι η εκτέλεση μιας οικογένειας ερωτημάτων για τη συμπλήρωση της κρυφής μνήμης.
Ακολουθούν ορισμένες προτάσεις για τους τύπους ερωτημάτων που μπορείτε να χρησιμοποιήσετε κατά τη δημιουργία μιας οικογένειας ερωτημάτων με την οποία θα τροφοδοτήσετε την κρυφή μνήμη.
Συνήθη προκατασκευασμένα ερωτήματα. Τα ερωτήματα που εκτελούνται συνήθως, ειδικά όσα έχουν υψηλές απαιτήσεις κατά την επεξεργασία, αποτελούν εξαιρετικά ερωτήματα για την τροφοδότηση της κρυφής μνήμης. Τα ερωτήματα των οποίων τα αποτελέσματα ενσωματώνονται σε dashboard είναι καλά παραδείγματα συνήθων ερωτημάτων.
Λίστες SELECT χωρίς εκφράσεις Η απαλοιφή εκφράσεων σε στήλες της λίστας SELECT
επεκτείνει τη δυνατότητα για επιτυχείς εντοπισμούς εγγραφών στην κρυφή μνήμη. Μια προσωρινά αποθηκευμένη στήλη που περιέχει κάποια έκφραση μπορεί να απαντήσει μόνο σε ένα νέο ερώτημα με την ίδια έκφραση. Μια προσωρινά αποθηκευμένη στήλη χωρίς εκφράσεις μπορεί να απαντήσει σε ένα αίτημα για τη συγκεκριμένη στήλη με οποιαδήποτε έκφραση. Για παράδειγμα, ένα προσωρινά αποθηκευμένο αίτημα όπως:
SELECT QUANTITY, REVENUE...
μπορεί να απαντήσει σε ένα νέο ερώτημα όπως:
SELECT QUANTITY/REVENUE...
αλλά όχι το αντίστροφο.
Δεν υπάρχει όρος WHERE. Αν δεν υπάρχει όρος WHERE
σε ένα προσωρινά αποθηκευμένο αποτέλεσμα, τότε αυτό μπορεί να χρησιμοποιηθεί για να απαντήσει σε ερωτήματα που ικανοποιούν τους κανόνες επιτυχούς εντοπισμού εγγραφής στην κρυφή μνήμη για τη λίστα επιλογής με οποιονδήποτε όρο WHERE
που περιλαμβάνει στήλες στη λίστα προβολής.
Γενικά, τα καλύτερα ερωτήματα για την τροφοδότηση της κρυφής μνήμης είναι ερωτήματα με εντατική χρήση των πόρων επεξεργασίας βάσης δεδομένων και τα οποία είναι πιθανό να εκδοθούν ξανά. Προσέχετε να μην τροφοδοτήσετε την κρυφή μνήμη με απλά ερωτήματα που επιστρέφουν πολλές σειρές. Αυτά τα ερωτήματα (για παράδειγμα, SELECT * FROM PRODUCTS
, όπου το PRODUCTS
αντιστοιχίζει απευθείας σε έναν μεμονωμένο πίνακα βάσης δεδομένων) απαιτούν ελάχιστη επεξεργασία της βάσης δεδομένων. Η επιβάρυνσή τους αφορά το δίκτυο και τον δίσκο, παράγοντες οι οποίοι δεν μετριάζονται από την αποθήκευση στην κρυφή μνήμη.
Όταν το Oracle Analytics Cloud ανανεώνει τις μεταβλητές σημασιολογικού μοντέλου, εξετάζει επιχειρηματικά μοντέλα για να προσδιορίσει εάν παραπέμπουν στις συγκεκριμένες μεταβλητές σημασιολογικού μοντέλου. Σε μια τέτοια περίπτωση, το Oracle Analytics Cloud κάνει εκκαθάριση της κρυφής μνήμης για αυτά τα επιχειρηματικά μοντέλα. Ανατρέξτε στην ενότητα Πώς επηρεάζεται η κρυφή μνήμη ερωτημάτων από τις αλλαγές στα σημασιολογικά μοντέλα.
Μπορείτε να διαμορφώσετε παράγοντες για την τροφοδότηση της κρυφής μνήμης ερωτημάτων του Oracle Analytics Cloud.
Η τροφοδότηση της κρυφής μνήμης μπορεί να βελτιώσει τους χρόνους απόκρισης για τους χρήστες όταν εκτελούν ή προβάλλουν αναλύσεις που είναι ενσωματωμένες στα dashboard τους. Για να το πετύχετε αυτό, μπορείτε να προγραμματίσετε παράγοντες έτσι ώστε να εκτελούν αιτήματα που ανανεώνουν αυτά τα δεδομένα.
Η μόνη διαφορά ανάμεσα στους παράγοντες τροφοδότησης κρυφής μνήμης και άλλους παράγοντες είναι ότι κάνουν αυτόματα εκκαθάριση της προηγούμενης κρυφής μνήμης και δεν εμφανίζονται στο dashboard ως ειδοποιήσεις.
Σημείωση:
Οι παράγοντες τροφοδότησης κρυφής μνήμης εκκαθαρίζουν μόνο ερωτήματα ακριβούς αντιστοίχισης, επομένως ενδεχομένως να εξακολουθούν να υπάρχουν παρωχημένα δεδομένα. Βεβαιωθείτε ότι η στρατηγική αποθήκευσης στην κρυφή μνήμη περιλαμβάνει πάντα εκκαθάριση της κρυφής μνήμης, καθώς τα ερωτήματα παραγόντων δεν αφορούν ad-hoc ερωτήματα ή λεπτομερείς αναζητήσεις.Η εκκαθάριση της κρυφής μνήμης διαγράφει τις καταχωρίσεις από την κρυφή μνήμη ερωτημάτων και διατηρεί το περιεχόμενό σας επίκαιρο. Μπορείτε να εκκαθαρίζετε αυτόματα τις καταχωρίσεις της κρυφής μνήμης για συγκεκριμένους πίνακες, ορίζοντας το πεδίο Χρόνος διατήρησης κρυφής μνήμης για κάθε πίνακα στο Model Administration Tool.
Σημείωση:
Αν χρησιμοποιείτε το Semantic Modeler, ανατρέξτε στην ενότητα Ποιες είναι οι γενικές ιδιότητες ενός φυσικού πίνακα;
Αυτό είναι χρήσιμο για προελεύσεις δεδομένων που ενημερώνονται συχνά. Για παράδειγμα, αν έχετε έναν πίνακα που αποθηκεύει δεδομένα κυλιόμενης ταινίας μετοχών και ενημερώνεται κάθε λεπτό, μπορείτε να χρησιμοποιήσετε τη ρύθμιση Χρόνος διατήρησης κρυφής μνήμης για την εκκαθάριση των καταχωρίσεων για τον συγκεκριμένο πίνακα κάθε 59 δευτερόλεπτα. Ανατρέξτε στην ενότητα Κρυφή μνήμη και χρόνος διατήρησης κρυφής μνήμης για καθορισμένους φυσικούς πίνακες.
Μπορείτε να χρησιμοποιήσετε μια αυτοματοποιημένη προσέγγιση για την εκκαθάριση (ή οριστική διαγραφή) της κρυφής μνήμης για το περιβάλλον σας Oracle Analytics Cloud ανάλογα με τις ανάγκες.
Η ενότητα αυτή περιέχει τα εξής θέματα:
Πληροφορίες για το βοηθητικό πρόγραμμα εκκαθάρισης κρυφής μνήμης (purgeoaccache)
Τυπική ροή εργασιών για εκκαθάριση της κρυφής μνήμης μέσω προγραμματισμού
Λήψη και ρύθμιση του βοηθητικού προγράμματος εκκαθάρισης κρυφής μνήμης
Εκτέλεση του βοηθητικού προγράμματος εκκαθάρισης κρυφής μνήμης (purgeoaccache)
Δημιουργία δέσμης ενεργειών για την τακτική εκκαθάριση της κρυφής μνήμης βάσει προγράμματος
Το Oracle Analytics παρέχει ένα βοηθητικό πρόγραμμα που μπορείτε να εκτελέσετε για να εκκαθαρίσετε την κρυφή μνήμη, το οποίο ονομάζεται purgeoaccache.sh
. Με αυτό το βοηθητικό πρόγραμμα, μπορείτε να εκκαθαρίσετε την κρυφή μνήμη με διαφορετικούς τρόπους. Μπορείτε να εκκαθαρίσετε ολόκληρη την κρυφή μνήμη ή να εκκαθαρίσετε την κρυφή μνήμη που συσχετίζεται με ένα συγκεκριμένο ερώτημα, πίνακα ή βάση δεδομένων.
Εκκαθάριση ολόκληρης της κρυφής μνήμης (SAPurgeAllCache
)
Στο sapurgecache.txt
, καλέστε τη συνάρτηση SAPurgeAllCache
για να εκκαθαρίσετε όλες τις καταχωρίσεις κρυφής μνήμης. Αυτή είναι η προεπιλεγμένη ρύθμιση.
Call SAPurgeAllCache();
Εκκαθάριση κρυφής μνήμης για ένα ερώτημα (SAPurgeCacheByQueryPurge
)
Στο sapurgecache.txt
, καλέστε τη συνάρτηση SAPurgeCacheByQueryPurge
για να εκκαθαρίσετε τις καταχωρίσεις κρυφής μνήμης που αντιστοιχούν ακριβώς σε ένα συγκεκριμένο ερώτημα.
SELECT lastname, firstname FROM employee WHERE salary > 100000;
Call SAPurgeCacheByQuery('SELECT lastname, firstname FROM employee WHERE salary > 100000' );
Εκκαθάριση κρυφής μνήμης για έναν πίνακα (SAPurgeCacheByTable
)
Στο sapurgecache.txt
, καλέστε τη συνάρτηση SAPurgeCacheByTable
για να εκκαθαρίσετε τις καταχωρίσεις κρυφής μνήμης που συσχετίζονται με έναν συγκεκριμένο φυσικό πίνακα βάσης δεδομένων. Η συνάρτηση χρησιμοποιεί έως και τέσσερις παραμέτρους όπου η καθεμιά αντιπροσωπεύει τα συστατικά ενός πλήρως προσδιορισμένου ονόματος φυσικού πίνακα (βάση δεδομένων, κατάλογο, σχήμα, όνομα πίνακα).
Σημείωση:
Δεν μπορείτε να χρησιμοποιήσετε χαρακτήρες μπαλαντέρ στις παραμέτρους συνάρτησης. Επίσης, τόσο το όνομα βάσης δεδομένων όσο και το όνομα πίνακα είναι υποχρεωτικές παράμετροι, επομένως, δεν μπορεί να είναι null.Call SAPurgeCacheByTable( 'DBName', 'CatName', 'SchName', 'TabName' );
Εκκαθάριση κρυφής μνήμης για μια βάση δεδομένων (SAPurgeCacheByDatabase
)
Στο sapurgecache.txt
, καλέστε τη συνάρτηση SAPurgeCacheByDatabase
για να εκκαθαρίσετε τις καταχωρίσεις κρυφής μνήμης που συσχετίζονται με μια συγκεκριμένη φυσική βάση δεδομένων. Η συνάρτηση χρησιμοποιεί μία παράμετρο που αντιπροσωπεύει το όνομα φυσικής βάσης δεδομένων και η παράμετρος δεν μπορεί να είναι null.
Call SAPurgeCacheByDatabase( 'DBName' );
Αυτές είναι οι εργασίες για να εκκαθαρίσετε την κρυφή μνήμη για το περιβάλλον σας Oracle Analytics Cloud.
Εργασία | Περιγραφή | Περισσότερες πληροφορίες |
---|---|---|
Αποφασίστε τον τρόπο με τον οποίο θέλετε να διασφαλίσετε τη σύνδεσή σας JDBC |
Ανάλογα με τις απαιτήσεις σας για την ασφάλεια, επιλέξτε είτε "Κάτοχος πόρου" (συνιστάται) ή "Διακριτικά ιστού JSON (JWT)" ως τύπο δήλωσης. |
Δείτε την ενότητα Επιλογή τύπου δήλωσης για τη σύνδεση JDBC στον οδηγό Σύνδεση του Oracle Analytics Cloud με τα δεδομένα σας. |
Καταχώρηση της εφαρμογής BIJDBC |
Καταχωρήστε την εφαρμογή BIJDBC για την πιστοποίηση της σύνδεσής σας JDBC. |
Για τη δήλωση κατόχου πόρου, δείτε την ενότητα Καταχώρηση της εφαρμογής BIJDBC με χρήση της δήλωσης κατόχου πόρου στον οδηγό Σύνδεση του Oracle Analytics Cloud με τα δεδομένα σας. Για τη δήλωση JWT, στον οδηγό Σύνδεση του Oracle Analytics Cloud με τα δεδομένα σας:
|
Λήψη και ρύθμιση του βοηθητικού προγράμματος εκκαθάρισης κρυφής μνήμης |
Πραγματοποιήστε λήψη του |
Λήψη και ρύθμιση του βοηθητικού προγράμματος εκκαθάρισης κρυφής μνήμης |
Παροχή πληροφοριών σύνδεσης OAuth |
Χρησιμοποιήστε την κονσόλα OCI για να λάβετε τις λεπτομέρειες σύνδεσης OAuth που απαιτούνται για τη σύνδεση με το Oracle Analytics Cloud και εισαγάγετε τις πληροφορίες στο |
|
Εκτέλεση του βοηθητικού προγράμματος εκκαθάρισης κρυφής μνήμης | Προσδιορίστε την κρυφή μνήμη που θέλετε να εκκαθαρίσετε και εκτελέστε το βοηθητικό πρόγραμμα εκκαθάρισης κρυφής μνήμης για να εκκαθαρίσετε την καθορισμένη κρυφή μνήμη. | Εκτέλεση του βοηθητικού προγράμματος εκκαθάρισης κρυφής μνήμης (purgeoaccache) |
Δημιουργία δέσμης ενεργειών για την τακτική εκκαθάριση της κρυφής μνήμης (Προαιρετικό) | Χρησιμοποιήστε μια εργασία Cron (ή παρόμοια) για να εκκαθαρίζετε την κρυφή μνήμη σύμφωνα με ένα τακτικό πρόγραμμα που ταιριάζει στις ανάγκες του οργανισμού σας. | Δημιουργία δέσμης ενεργειών για την τακτική εκκαθάριση της κρυφής μνήμης βάσει προγράμματος |
Για να είναι δυνατή η χρήση του βοηθητικού προγράμματος εκκαθάρισης κρυφής μνήμης, πρέπει να πραγματοποιήσετε λήψη του BI-JDBC.zip
και να εκτελέσετε ορισμένες εργασίες ρύθμισης. Για παράδειγμα, πρέπει να αποκτήσετε το bijdbc-all.jar
και να ορίσετε τη μεταβλητή JAVA_HOME
.
Χρησιμοποιήστε την κονσόλα του Oracle Cloud Infrastructure (OCI) για να λάβετε τις πληροφορίες σύνδεσης που απαιτούνται για το αρχείο bijdbc.properties
.
Αφού ολοκληρώσετε τη ρύθμιση και διαμορφώσετε το αρχείο bijdbc.properties
, είστε έτοιμοι να εκτελέσετε τη δέσμη ενεργειών. Η δέσμη ενεργειών θα εκκαθαρίσει ολόκληρη την κρυφή μνήμη από προεπιλογή. Αν θέλετε να εκκαθαρίσετε καταχωρίσεις κρυφής μνήμης για ένα συγκεκριμένο ερώτημα, πίνακα ή βάση δεδομένων, καθορίστε την απαιτούμενη συνάρτηση και τις παραμέτρους στο sapurgecache.txt
.
BI-JDBC/props
, ανοίξτε το αρχείο sapurgecache.txt
και ενημερώστε την πρόταση κλήσης, για να καθορίσετε τις καταχωρίσεις κρυφής μνήμης που θέλετε να εκκαθαρίσει η δέσμη ενεργειών. Δείτε Πληροφορίες για το βοηθητικό πρόγραμμα εκκαθάρισης κρυφής μνήμης (purgeoaccache).BI-JDBC\purgeoaccache
). Σε Linux, εκτελέστε το αρχείο purgeoaccache.sh
. Σε Windows, εκτελέστε το αρχείο purgeoaccache.bat
.Μπορείτε να δημιουργήσετε μια προσαρμοσμένη δέσμη ενεργειών, όπως μια εργασία Cron (ή παρόμοια), η οποία εκκαθαρίζει την κρυφή μνήμη σύμφωνα με ένα πρόγραμμα που ταιριάζει στις ανάγκες του οργανισμού σας.
$crontab -e 0 23 * * * /bin/bash ~/BI-JDBC/purgeoaccache.sh >> ~/BI-JDBC/temp/purgeoaccache.log 2>&1