Διαχείριση αποθήκευσης ερωτημάτων στην κρυφή μνήμη

Το Oracle Analytics Cloud διατηρεί μια τοπική κρυφή μνήμη με σύνολα αποτελεσμάτων ερωτημάτων στην κρυφή μνήμη ερωτημάτων.

Θέματα:

Πληροφορίες για την κρυφή μνήμη ερωτημάτων

Η κρυφή μνήμη ερωτημάτων επιτρέπει στο Oracle Analytics Cloud να ικανοποιήσει πολλά επακόλουθα αιτήματα ερωτημάτων χωρίς να απαιτείται πρόσβαση στις προελεύσεις δεδομένων παρασκηνίου, γεγονός που βελτιώνει την απόδοση των ερωτημάτων. Ωστόσο, η κρυφή μνήμη ερωτημάτων ενδεχομένως να γίνει παρωχημένη καθώς γίνονται ενημερώσεις στις προελεύσεις δεδομένων παρασκηνίου.

Πλεονεκτήματα αποθήκευσης στην κρυφή μνήμη

Ο πιο γρήγορος τρόπος για την επεξεργασία ενός ερωτήματος είναι η παράλειψη του μεγαλύτερου μέρους της επεξεργασίας και η χρήση μιας προϋπολογισμένης απάντησης.

Με την αποθήκευση ερωτημάτων στην κρυφή μνήμη, το Oracle Analytics Cloud αποθηκεύει τα προϋπολογισμένα αποτελέσματα ερωτημάτων σε μια τοπική κρυφή μνήμη. Αν ένα άλλο ερώτημα μπορεί να χρησιμοποιήσει αυτά τα ερωτήματα, τότε η ανάγκη επεξεργασίας της βάσης δεδομένων για το συγκεκριμένο ερώτημα εξαλείφεται εξολοκλήρου. Αυτό μπορεί να οδηγήσει σε σημαντικές βελτιώσεις στον μέσο χρόνο απόκρισης σε ερωτήματα.

Εκτός από τη βελτίωση της απόδοσης, η δυνατότητα απάντησης ενός ερωτήματος από μια τοπική κρυφή μνήμη εξοικονομεί πόρους δικτύου και χρόνο επεξεργασίας στον server της βάσης δεδομένων. Οι πόροι δικτύου εξοικονομούνται διότι τα ενδιάμεσα αποτελέσματα δεν επιστρέφονται στο Oracle Analytics Cloud. Η αποφυγή εκτέλεσης του ερωτήματος στη βάση δεδομένων αποδεσμεύει τον server της βάσης δεδομένων για την εκτέλεση άλλων εργασιών. Αν η βάση δεδομένων χρησιμοποιεί ένα σύστημα charge back, τότε η εκτέλεση λιγότερων ερωτημάτων μπορεί επίσης να μειώσει το κόστος στον προϋπολογισμό.

Ένα άλλο πλεονέκτημα της χρήσης της κρυφής μνήμης για την απάντηση ενός ερωτήματος είναι η εξοικονόμηση χρόνου επεξεργασίας στο Oracle Analytics Cloud, ειδικά αν τα αποτελέσματα ερωτήματος ανακτώνται από πολλές βάσεις δεδομένων. Ανάλογα με το ερώτημα, μπορεί να περιλαμβάνεται σημαντική επεξεργασία συνένωσης και ταξινόμησης στον server. Αν το ερώτημα είναι ήδη υπολογισμένο, τότε αυτή η επεξεργασία αποφεύγεται, αποδεσμεύοντας πόρους στον server για άλλες εργασίες.

Συνοψίζοντας, η αποθήκευση ερωτημάτων στην κρυφή μνήμη μπορεί να βελτιώσει σημαντικά την απόδοση των ερωτημάτων και να μειώσει την κυκλοφορία στο δίκτυο, την επεξεργασία της βάσης δεδομένων και την επιβάρυνση από την επεξεργασία.

Κόστος αποθήκευσης στην κρυφή μνήμη

Η αποθήκευση ερωτημάτων στην κρυφή μνήμη έχει πολλά εμφανή πλεονεκτήματα αλλά και κάποιο κόστος.

  • Πιθανότητα τα προσωρινά αποθηκευμένα αποτελέσματα να είναι παρωχημένα

  • Διαχειριστικό κόστος για τη διαχείριση της κρυφής μνήμης

Σε ό,τι αφορά τη διαχείριση της κρυφής μνήμης, τα πλεονεκτήματα συνήθως υπερκαλύπτουν κατά πολύ το κόστος.

Διαχειριστικές εργασίες που συσχετίζονται με την αποθήκευση στην ενδιάμεση μνήμη

Ορισμένες διαχειριστικές εργασίες συσχετίζονται με την αποθήκευση στην κρυφή μνήμη. Πρέπει να ορίσετε τον χρόνο διατήρησης της κρυφής μνήμης για κάθε φυσικό πίνακα ανάλογα, έχοντας επίγνωση της συχνότητας ενημέρωσης των δεδομένων στον συγκεκριμένο πίνακα.

Όταν η συχνότητα ενημέρωσης ποικίλλει, πρέπει να παρακολουθείτε πότε συμβαίνουν αλλαγές και να εκκαθαρίζετε μόνοι σας την κρυφή μνήμη όταν απαιτείται.

Διατήρηση της κρυφής μνήμης ενημερωμένης

Αν οι καταχωρίσεις κρυφής μνήμης δεν εκκαθαρίζονται όταν αλλάζουν τα δεδομένα στις υποκείμενες βάσεις δεδομένων, τότε υπάρχει η πιθανότητα τα ερωτήματα να επιστρέφουν αποτελέσματα που δεν είναι ενημερωμένα.

Πρέπει να αξιολογήσετε εάν κάτι τέτοιο είναι αποδεκτό. Ενδεχομένως να είναι αποδεκτό να επιτρέπεται να περιέχει ορισμένα παρωχημένα δεδομένα η κρυφή μνήμη. Πρέπει να αποφασίσετε το επίπεδο παρωχημένων δεδομένων που θεωρείται αποδεκτό και κατόπιν να διαμορφώσετε (και να τηρείτε) ένα σύνολο κανόνων που αντικατοπτρίζει αυτά τα επίπεδα.

Για παράδειγμα, ας υποθέσουμε ότι μια εφαρμογή αναλύει εταιρικά δεδομένα από μια μεγάλη πολυεθνική και εσείς εκτελείτε ετήσιες συνόψεις των διαφορετικών τμημάτων στην εταιρεία. Τα νέα δεδομένα δεν επηρεάζουν ουσιαστικά τα ερωτήματα καθώς τα νέα δεδομένα επηρεάζουν μόνο τις συνόψεις του επόμενου έτους. Σε αυτήν την περίπτωση, τα πλεονεκτήματα σε σχέση με τα μειονεκτήματα της απόφασης εκκαθάρισης της κρυφής μνήμης ενδεχομένως να ευνοούν τη διατήρηση των καταχωρίσεων στην κρυφή μνήμη.

Ας υποθέσουμε, ωστόσο, ότι οι βάσεις δεδομένων ενημερώνονται τρεις φορές την ημέρα και εκτελείτε ερωτήματα με βάση τις δραστηριότητες της τρέχουσας ημέρας. Σε αυτήν την περίπτωση, πρέπει να εκκαθαρίζετε την κρυφή μνήμη συχνότερα ή να εξετάσετε το ενδεχόμενο να μην χρησιμοποιείτε καθόλου την κρυφή μνήμη.

Ένα άλλο σενάριο είναι ότι δημιουργείτε εκ νέου το σύνολο δεδομένων από την αρχή κατά περιοδικά διαστήματα (για παράδειγμα, μία φορά την εβδομάδα). Σε αυτό το παράδειγμα, μπορείτε να εκκαθαρίσετε ολόκληρη την κρυφή μνήμη ως μέρος της διαδικασίας αναδημιουργίας του συνόλου δεδομένων, εξασφαλίζοντας έτσι ότι δεν θα έχετε ποτέ παρωχημένα δεδομένα στην κρυφή μνήμη.

Ανεξάρτητα από την περίπτωσή σας, πρέπει να αξιολογήσετε τι θεωρείται αποδεκτό όσον αφορά τις μη ενημερωμένες πληροφορίες που επιστρέφονται στους χρήστες.

Κοινή χρήση κρυφής μνήμης μεταξύ χρηστών

Αν είναι ενεργοποιημένη η κοινόχρηστη σύνδεση για έναν συγκεκριμένο χώρο συγκέντρωσης συνδέσεων, τότε είναι δυνατή η κοινή χρήση της κρυφής μνήμης μεταξύ των χρηστών και δεν απαιτείται η τροφοδότησή της για κάθε χρήστη.

Αν η κοινόχρηστη σύνδεση δεν είναι ενεργοποιημένη και χρησιμοποιείται συγκεκριμένη σύνδεση στη βάση δεδομένων για κάθε χρήστη, τότε κάθε χρήστης δημιουργεί τη δική του καταχώριση στην κρυφή μνήμη.

Ενεργοποίηση ή απενεργοποίηση αποθήκευσης ερωτημάτων στην κρυφή μνήμη

Στο Oracle Analytics Cloud, η κρυφή μνήμη ερωτημάτων είναι ενεργοποιημένη από προεπιλογή. Μπορείτε να ενεργοποιήσετε ή να απενεργοποιήσετε την αποθήκευση ερωτημάτων στην κρυφή μνήμη από τη σελίδα "Ρυθμίσεις συστήματος".

  1. Κάντε κλικ στην επιλογή "Κονσόλα".
  2. Κάντε κλικ στο στοιχείο Ρυθμίσεις συστήματος.
  3. Κάντε κλικ στην ενότητα Απόδοση και συμβατότητα.
  4. Ορίστε την επιλογή Ενεργοποίηση κρυφής μνήμης σε ενεργή ή ανενεργή.
    • Ενεργή — Ενεργοποιείται η αποθήκευση ερωτημάτων δεδομένων στην κρυφή μνήμη.
    • Ανενεργή — Απενεργοποιείται η αποθήκευση στην κρυφή μνήμη.
  5. Κάντε κλικ στο στοιχείο Εφαρμογή.
    Περιμένετε μερικά λεπτά μέχρι να εφαρμοστούν οι αλλαγές στο σύστημα.

Παρακολούθηση και διαχείριση της κρυφής μνήμης

Για να διαχειρίζεστε τις αλλαγές στις υποκείμενες βάσεις δεδομένων και να παρακολουθείτε τις καταχωρίσεις στην κρυφή μνήμη, πρέπει να αναπτύξετε μια στρατηγική διαχείρισης της κρυφής μνήμης.

Χρειάζεστε μια διαδικασία με την οποία να ακυρώνετε καταχωρίσεις κρυφής μνήμη όταν τα δεδομένα στους υποκείμενους πίνακες που απαρτίζουν την καταχώριση κρυφής μνήμης αλλάζουν, καθώς και μια διαδικασία για να παρακολουθείτε, να προσδιορίζετε και να καταργείτε ανεπιθύμητες καταχωρίσεις στην κρυφή μνήμη.

Η ενότητα αυτή περιέχει τα εξής θέματα:

Επιλέξτε στρατηγική διαχείρισης κρυφής μνήμης

Η επιλογή μιας στρατηγικής διαχείρισης της κρυφής μνήμης εξαρτάται από τη μεταβλητότητα των δεδομένων στις υποκείμενες βάσεις δεδομένων και τη δυνατότητα πρόβλεψης των αλλαγών που προκαλούν αυτήν τη μεταβλητότητα.

Εξαρτάται επίσης από τον αριθμό και τον τύπο των ερωτημάτων που απαρτίζουν την κρυφή μνήμη σας και τη χρήση που δέχονται αυτά τα ερωτήματα. Αυτή η ενότητα παρέχει μια επισκόπηση των διαφόρων προσεγγίσεων στη διαχείριση της κρυφής μνήμης.

Απενεργοποίηση αποθήκευσης στην κρυφή μνήμη για το σύστημα

Μπορείτε να απενεργοποιήσετε την αποθήκευση στην κρυφή μνήμη για ολόκληρο το σύστημα, προκειμένου να σταματήσετε όλες τις νέες καταχωρίσεις στην κρυφή μνήμη και να σταματήσετε τη χρήση της υπάρχουσας κρυφής μνήμης από τυχόν νέα ερωτήματα. Η απενεργοποίηση της αποθήκευσης στην κρυφή μνήμη σάς επιτρέπει να την ενεργοποιήσετε αργότερα χωρίς να χάσετε τις καταχωρίσεις που είναι αποθηκευμένες στην κρυφή μνήμη.

Η προσωρινή απενεργοποίηση της αποθήκευσης στην κρυφή μνήμη είναι μια χρήσιμη στρατηγική σε περιπτώσεις όπου υποψιάζεστε ότι υπάρχουν παρωχημένες καταχωρίσεις κρυφής μνήμης, αλλά θέλετε να επιβεβαιώσετε αν όντως είναι παρωχημένες προτού εκκαθαρίσετε αυτές τις καταχωρίσεις ή ολόκληρη την κρυφή μνήμη. Αν εξακριβώσετε ότι τα δεδομένα που είναι αποθηκευμένα στην κρυφή μνήμη εξακολουθούν να είναι συναφή, ή αφού εκκαθαρίσετε με ασφάλεια τις προβληματικές καταχωρίσεις, μπορείτε να ενεργοποιήσετε με ασφάλεια την κρυφή μνήμη. Αν είναι απαραίτητο, εκκαθαρίστε ολόκληρη την κρυφή μνήμη που συσχετίζεται με ένα συγκεκριμένο επιχειρηματικό μοντέλο προτού ενεργοποιήσετε ξανά την κρυφή μνήμη.

Κρυφή μνήμη και χρόνος διατήρησης κρυφής μνήμης για καθορισμένους φυσικούς πίνακες

Μπορείτε να ορίσετε ένα χαρακτηριστικό με δυνατότητα αποθήκευσης στην κρυφή μνήμη για κάθε φυσικό πίνακα και με αυτόν τον τρόπο να έχετε τη δυνατότητα να καθορίσετε αν τα ερωτήματα για τον συγκεκριμένο πίνακα θα προστίθενται στην κρυφή μνήμη για την απάντηση μελλοντικών ερωτημάτων.

Αν ενεργοποιήσετε την αποθήκευση στην κρυφή μνήμη, τότε οποιοδήποτε ερώτημα που αφορά τον πίνακα προστίθεται στην κρυφή μνήμη. Από προεπιλογή, όλοι οι πίνακες διαθέτουν δυνατότητα αποθήκευσης στην κρυφή μνήμη, αλλά ορισμένοι πίνακες μπορεί να μην είναι καλοί υποψήφιοι για συμπερίληψη στην κρυφή μνήμη εκτός αν χρησιμοποιείτε κατάλληλες ρυθμίσεις χρόνου διατήρησης στην κρυφή μνήμη. Για παράδειγμα, ας υποθέσουμε ότι έχετε έναν πίνακα που αποθηκεύει δεδομένα κυλιόμενης ταινίας μετοχών και ενημερώνεται κάθε λεπτό. Μπορείτε να καθορίσετε ότι θέλετε να εκκαθαρίζετε τις καταχωρίσεις για τον συγκεκριμένο πίνακα κάθε 59 δευτερόλεπτα.

Μπορείτε επίσης να χρησιμοποιήσετε τις ρυθμίσεις χρόνου διατήρησης στην κρυφή μνήμη, για να καθορίσετε τη διάρκεια αποθήκευσης των καταχωρίσεων για αυτόν τον πίνακα στην κρυφή μνήμη ερωτημάτων. Αυτό είναι χρήσιμο για προελεύσεις δεδομένων που ενημερώνονται συχνά.

  1. Στο Model Administration Tool, κάντε διπλό κλικ στον φυσικό πίνακα στην ενότητα Φυσικό επίπεδο.

    Αν χρησιμοποιείτε το Semantic Modeler, ανατρέξτε στην ενότητα Ποιες είναι οι γενικές ιδιότητες ενός φυσικού πίνακα;.

  2. Στο παράθυρο διαλόγου ιδιοτήτων Φυσικός πίνακας, στην καρτέλα Γενικά, κάντε μία από τις ακόλουθες επιλογές:

    • Για να ενεργοποιήσετε την αποθήκευση στην κρυφή μνήμη, επιλέξτε Δυνατότητα αποθήκευσης στην κρυφή μνήμη.

    • Για να αποτρέψετε την αποθήκευση ενός πίνακα στην κρυφή μνήμη, καταργήστε την επιλογή Δυνατότητα αποθήκευσης στην κρυφή μνήμη.

  3. Για να ορίσετε χρόνο λήξης στην κρυφή μνήμη, καθορίστε μια τιμή στην επιλογή Χρόνος διατήρησης κρυφής μνήμης και καθορίσετε μια μονάδα μέτρησης (ημέρες, ώρες, λεπτά ή δευτερόλεπτα). Αν δεν θέλετε να λήγουν αυτόματα οι καταχωρίσεις στην κρυφή μνήμη, επιλέξτε Η κρυφή μνήμη δεν λήγει ποτέ.

  4. Κάντε κλικ στην επιλογή 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 μπορεί να χρησιμοποιήσει την κρυφή μνήμη ερωτημάτων για να απαντήσει ερωτήματα του ίδιου ή υψηλότερου επιπέδου συγκέντρωσης.

Υπάρχουν πολλοί παράγοντες που καθορίζουν τη δυνατότητα επιτυχούς εντοπισμού εγγραφής στη μνήμη. Ο παρακάτω πίνακας περιγράφει αυτούς τους παράγοντες.

Παράγοντας ή κανόνας Περιγραφή

Πρέπει να αντιστοιχεί ένα υποσύνολο των στηλών στη λίστα SELECT

Όλες οι στήλες στη λίστα SELECT ενός νέου ερωτήματος πρέπει να υπάρχουν στο προσωρινά αποθηκευμένο ερώτημα για να είναι δυνατός ο επιτυχής εντοπισμός εγγραφής στην κρυφή μνήμη. Εναλλακτικά, πρέπει να είναι δυνατός ο υπολογισμός τους από τις στήλες στο ερώτημα.

Αυτός ο κανόνας περιγράφει την ελάχιστη απαίτηση για τον εντοπισμό εγγραφής στην κρυφή μνήμη, αλλά η ικανοποίηση αυτού του κανόνα δεν εγγυάται τον επιτυχή εντοπισμό της στην κρυφή μνήμη. Ισχύουν επίσης οι υπόλοιποι κανόνες που αναφέρονται σε αυτόν τον πίνακα.

Οι στήλες στη λίστα SELECT μπορούν να αποτελούνται από εκφράσεις στις στήλες των προσωρινά αποθηκευμένων ερωτημάτων

Το Oracle Analytics Cloud μπορεί να υπολογίσει εκφράσεις βάσει των προσωρινά αποθηκευμένων αποτελεσμάτων για να απαντήσει στο νέο ερώτημα, αλλά όλες οι στήλες πρέπει να περιλαμβάνονται στο προσωρινά αποθηκευμένο αποτέλεσμα. Για παράδειγμα, το ερώτημα:

SELECT product, month, averageprice FROM sales WHERE year = 2000

εντοπίζει επιτυχώς εγγραφή στην κρυφή μνήμη βάσει του ερωτήματος:

SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000

διότι το averageprice μπορεί να υπολογιστεί από το dollars και το unitsales (averageprice = dollars/unitsales).

Ο όρος WHERE πρέπει να είναι σημασιολογικά ο ίδιος ή ένα λογικό υποσύνολο

Για να θεωρηθεί το ερώτημα επιτυχής εντοπισμός εγγραφής στην κρυφή μνήμη, οι περιορισμοί του όρου WHERE πρέπει να είναι είτε ισοδύναμοι με τα προσωρινά αποθηκευμένα αποτελέσματα είτε ένα υποσύνολο των προσωρινά αποθηκευμένων αποτελεσμάτων.

Ένας όρος WHERE που αποτελεί λογικό υποσύνολο ενός προσωρινά αποθηκευμένου ερωτήματος πληροί τις προϋποθέσεις για επιτυχή εντοπισμό εγγραφής στην κρυφή μνήμη εφόσον το υποσύνολο ικανοποιεί ένα από τα παρακάτω κριτήρια:

  • Ένα υποσύνολο τιμών λίστας IN. Τα ερωτήματα που ζητούν λιγότερα στοιχεία από ένα προσωρινά αποθηκευμένο ερώτημα λίστας IN πληρούν τις προϋποθέσεις για επιτυχή εντοπισμό εγγραφής στην κρυφή μνήμη. Για παράδειγμα, το ακόλουθο ερώτημα:

    SELECT employeename, region
    FROM employee, geography
    WHERE region in ('EAST', 'WEST')

    πληροί τις προϋποθέσεις για επιτυχή εντοπισμό με βάση το ακόλουθο προσωρινά αποθηκευμένο ερώτημα:

    SELECT employeename, region
    FROM employee, geography
    WHERE region in ('NORTH', 'SOUTH', 'EAST', 'WEST')
  • Περιέχουν λιγότερους (αλλά πανομοιότυπους) περιορισμούς OR από το προσωρινά αποθηκευμένο αποτέλεσμα.

  • Περιέχει ένα λογικό υποσύνολο μιας σύγκρισης λεκτικών σταθερών. Για παράδειγμα, το ακόλουθο κατηγόρημα:

    WHERE revenue < 1000

    πληροί τις προϋποθέσεις ως επιτυχής εντοπισμός εγγραφής στην κρυφή μνήμη βάσει ενός συγκρίσιμου ερωτήματος με το κατηγόρημα:

    WHERE revenue < 5000
  • Δεν υπάρχει όρος WHERE. Αν αποθηκευτεί στην κρυφή μνήμη ένα ερώτημα χωρίς όρο WHERE, τότε τα ερωτήματα που ικανοποιούν όλους τους άλλους κανόνες επιτυχούς εντοπισμού εγγραφής στην κρυφή μνήμη πληρούν τις προϋποθέσεις ως επιτυχείς εντοπισμοί εγγραφής στην κρυφή μνήμη ανεξάρτητα από τον όρο WHERE που περιλαμβάνουν.

Επιπλέον, οι στήλες που χρησιμοποιούνται στον όρο WHERE πρέπει να υπάρχουν στη λίστα προβολής. Για παράδειγμα, το ακόλουθο ερώτημα:

SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')

Δεν καταλήγει σε επιτυχή εντοπισμό εγγραφής στην κρυφή μνήμη για το ερώτημα τροφοδότησης στην προηγούμενη λίστα επειδή το REGION δεν υπάρχει στη λίστα προβολής.

Τα ερωτήματα αποκλειστικά βάσει διαστάσεων πρέπει να αντιστοιχούν ακριβώς

Αν ένα ερώτημα βασίζεται αποκλειστικά σε διαστάσεις, το οποίο σημαίνει ότι δεν περιλαμβάνονται δεδομένα ή μετρήσεις στο ερώτημα, τότε μόνο μιας ακριβής αντιστοίχιση των στηλών προβολής του προσωρινά αποθηκευμένου ερωτήματος εντοπίζει επιτυχώς εγγραφή στην κρυφή μνήμη. Αυτή η συμπεριφορά αποτρέπει τα ψευδή θετικά αποτελέσματα όταν υπάρχουν πολλές λογικές προελεύσεις για έναν πίνακα διαστάσεων.

Τα ερωτήματα με ειδικές συναρτήσεις πρέπει να αντιστοιχούν ακριβώς

Άλλα ερωτήματα που περιέχουν ειδικές συναρτήσεις όπως συναρτήσεις χρονικής σειράς (AGO, TODATE και PERIODROLLING), συναρτήσεις ορίων και απόκλισης (OFFSET και FETCH), συναρτήσεις σχέσης (ISANCESTOR, ISLEAF, ISROOT και ISSIBLING), συναρτήσεις εξωτερικής συγκέντρωσης και γενικά μετρήσεις φίλτρου πρέπει επίσης να αντιστοιχούν ακριβώς στις στήλες προβολής στο προσωρινά αποθηκευμένο ερώτημα. Σε αυτές τις περιπτώσεις, το φίλτρο πρέπει επίσης να αντιστοιχεί ακριβώς. Για τις μετρήσεις φίλτρου, αν η μέτρηση φίλτρου μπορεί να συνταχθεί εκ νέου ως όρος WHERE, τότε ενδεχομένως να αξιοποιηθεί η κρυφή μνήμη υποσυνόλου.

Τα σύνολα λογικών πινάκων πρέπει να αντιστοιχούν

Για να πληρούν τις προϋποθέσεις ως επιτυχής εντοπισμός εγγραφής στην κρυφή μνήμη, όλα τα εισερχόμενα ερωτήματα πρέπει να έχουν το ίδιο σύνολο λογικών πινάκων με την καταχώριση κρυφής μνήμης. Με αυτόν τον κανόνα αποφεύγονται οι ψευδώς θετικοί εντοπισμοί εγγραφών στην κρυφή μνήμη. Για παράδειγμα, το SELECT * FROM product δεν αντιστοιχεί στο SELECT * FROM product, sales.

Οι τιμές μεταβλητών περιόδου σύνδεσης πρέπει να αντιστοιχούν, συμπεριλαμβανομένων των μεταβλητών περιόδου σύνδεσης ασφαλείας

Αν η λογική δήλωση SQL ή η φυσική δήλωση SQL αναφέρεται σε οποιαδήποτε μεταβλητή περιόδου σύνδεσης, τότε οι τιμές της μεταβλητής περιόδου σύνδεσης πρέπει να αντιστοιχούν. Διαφορετικά, δεν γίνεται επιτυχής εντοπισμός εγγραφής στην κρυφή μνήμη.

Επιπλέον, η τιμή των μεταβλητών περιόδου λειτουργίας που αφορούν στην ασφάλεια πρέπει να αντιστοιχούν στις τιμές των μεταβλητών περιόδου λειτουργίας ασφαλείας που ορίζονται στο σημασιολογικό μοντέλο, ακόμα και εάν η ίδια η λογική δήλωση SQL δεν παραπέμπει σε μεταβλητές περιόδου λειτουργίας. Ανατρέξτε στην ενότητα Διασφαλίστε σωστά αποτελέσματα κρυφής μνήμης κατά τη χρήση ασφάλειας βάσης δεδομένων επιπέδου σειρών.

Συνθήκες ισότιμης συνένωσης

Ο συνενωμένος λογικός πίνακας που προκύπτει για ένα νέο ερώτημα πρέπει να είναι ίδιος με τα προσωρινά αποθηκευμένα αποτελέσματα (ή ένα υποσύνολο αυτών) για να πληροί τις προϋποθέσεις για επιτυχή εντοπισμό εγγραφής στην κρυφή μνήμη.

Το χαρακτηριστικό DISTINCT πρέπει να είναι το ίδιο

Αν ένα προσωρινά αποθηκευμένο ερώτημα εξαλείφει τις διπλότυπες εγγραφές μέσω της επεξεργασίας DISTINCT (για παράδειγμα, SELECT DISTINCT...), τότε τα αιτήματα για τις προσωρινά αποθηκευμένες στήλες πρέπει να περιλαμβάνουν επίσης την επεξεργασία DISTINCT. Ένα αίτημα για την ίδια στήλη χωρίς την επεξεργασία DISTINCT αποτελεί αστοχία εντοπισμού στην κρυφή μνήμη.

Τα ερωτήματα πρέπει να περιλαμβάνουν συμβατά επίπεδα συγκέντρωσης

Τα ερωτήματα που ζητούν συγκεντρωτικές πληροφορίες συγκεκριμένου επιπέδου μπορούν να χρησιμοποιήσουν τα προσωρινά αποθηκευμένα αποτελέσματα σε χαμηλότερο επίπεδο συγκέντρωσης. Για παράδειγμα, το ακόλουθο ερώτημα ζητά την ποσότητα που πωλήθηκε σε επίπεδο προμηθευτή, περιοχής και πόλης:

SELECT supplier, region, city, qtysold
FROM suppliercity

Το ακόλουθο ερώτημα ζητά την ποσότητα που πωλήθηκε σε επίπεδο πόλης:

SELECT city, qtysold
FROM suppliercity

Το δεύτερο ερώτημα καταλήγει σε επιτυχή εντοπισμό εγγραφής στην κρυφή μνήμη με βάση το πρώτο ερώτημα.

Περιορισμένη πρόσθετη συγκέντρωση

Για παράδειγμα, αν ένα ερώτημα με τη στήλη qtysold αποθηκευτεί στην κρυφή μνήμη, τότε ένα αίτημα για το RANK(qtysold) έχει ως αποτέλεσμα την αστοχία εντοπισμού στην κρυφή μνήμη. Επιπλέον, ένα ερώτημα που ζητά το qtysold σε επίπεδο χώρας μπορεί να εντοπίσει επιτυχώς εγγραφή στην κρυφή μνήμη από ένα ερώτημα που ζητά το qtysold σε επίπεδο χώρας και περιοχής.

Ο όρος ORDER BY πρέπει να αποτελείται από στήλες στη λίστα επιλογής

Τα ερωτήματα που κάνουν ταξινόμηση κατά στήλη και δεν περιέχονται στη λίστα επιλογής καταλήγουν σε αστοχίες εντοπισμού στην κρυφή μνήμη.

Διάγνωση συμπεριφοράς επιτυχούς εντοπισμού εγγραφής στην κρυφή μνήμη

Για καλύτερη εκτίμηση της συμπεριφοράς επιτυχούς εντοπισμού εγγραφής στην κρυφή μνήμη, ορίστε τη μεταβλητή περιόδου σύνδεσης 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 τους. Για να το πετύχετε αυτό, μπορείτε να προγραμματίσετε παράγοντες έτσι ώστε να εκτελούν αιτήματα που ανανεώνουν αυτά τα δεδομένα.

  1. Στο Oracle Analytics Cloud, ανοίξτε την Κλασική αρχική σελίδα και επιλέξτε Παράγοντας (ενότητα Δημιουργία).
  2. Στην καρτέλα Γενικά, επιλέξετε Παραλήπτης για την επιλογή Εκτέλεση ως. Η εξατομικευμένη τροφοδότηση κρυφής μνήμης χρησιμοποιεί την ορατότητα δεδομένων κάθε παραλήπτη προκειμένου να προσαρμόσει το περιεχόμενο παράδοσης παράγοντα για κάθε παραλήπτη.
  3. Στην καρτέλα Προγραμματισμός, καθορίστε πότε θέλετε να γίνεται τροφοδότηση της κρυφής μνήμης.
  4. Προαιρετικά: Επιλέξτε Συνθήκη και δημιουργήστε ή επιλέξτε ένα αίτημα υπό συνθήκες. Για παράδειγμα, μπορεί να έχετε ένα επιχειρηματικό μοντέλο που προσδιορίζει πότε έχει ολοκληρωθεί η διαδικασία ETL. Θα μπορούσατε να χρησιμοποιήσετε μια αναφορά με βάση αυτό το επιχειρηματικό μοντέλο ώστε να λειτουργεί ως το έναυσμα υπό συνθήκες για έναρξη της τροφοδότησης της κρυφής μνήμης.
  5. Στην καρτέλα Περιεχόμενο παράδοσης, επιλέξτε ένα μεμονωμένο αίτημα ή μια ολόκληρη σελίδα dashboard για την οποία θέλετε να τροφοδοτηθεί η κρυφή μνήμη. Η επιλογή μιας σελίδας dashboard μπορεί να σας εξοικονομήσει χρόνο.
  6. Στην καρτέλα Παραλήπτες, επιλέξτε μεμονωμένους χρήστες ή ομάδες ως παραλήπτες.
  7. Στην καρτέλα Προορισμοί, κάντε εκκαθάριση όλων των προορισμών χρηστών και επιλέξτε Κρυφή μνήμη Oracle Analytics Server.
  8. Αποθηκεύστε τον παράγοντα, επιλέγοντας το κουμπί Αποθήκευση στην επάνω δεξιά γωνία.

Η μόνη διαφορά ανάμεσα στους παράγοντες τροφοδότησης κρυφής μνήμης και άλλους παράγοντες είναι ότι κάνουν αυτόματα εκκαθάριση της προηγούμενης κρυφής μνήμης και δεν εμφανίζονται στο dashboard ως ειδοποιήσεις.

Σημείωση:

Οι παράγοντες τροφοδότησης κρυφής μνήμης εκκαθαρίζουν μόνο ερωτήματα ακριβούς αντιστοίχισης, επομένως ενδεχομένως να εξακολουθούν να υπάρχουν παρωχημένα δεδομένα. Βεβαιωθείτε ότι η στρατηγική αποθήκευσης στην κρυφή μνήμη περιλαμβάνει πάντα εκκαθάριση της κρυφής μνήμης, καθώς τα ερωτήματα παραγόντων δεν αφορούν ad-hoc ερωτήματα ή λεπτομερείς αναζητήσεις.

Χρήση του Model Administration Tool για την αυτόματη εκκαθάριση της κρυφής μνήμης για συγκεκριμένους πίνακες

Η εκκαθάριση της κρυφής μνήμης διαγράφει τις καταχωρίσεις από την κρυφή μνήμη ερωτημάτων και διατηρεί το περιεχόμενό σας επίκαιρο. Μπορείτε να εκκαθαρίζετε αυτόματα τις καταχωρίσεις της κρυφής μνήμης για συγκεκριμένους πίνακες, ορίζοντας το πεδίο Χρόνος διατήρησης κρυφής μνήμης για κάθε πίνακα στο Model Administration Tool.

Σημείωση:

Αν χρησιμοποιείτε το Semantic Modeler, ανατρέξτε στην ενότητα Ποιες είναι οι γενικές ιδιότητες ενός φυσικού πίνακα;

Αυτό είναι χρήσιμο για προελεύσεις δεδομένων που ενημερώνονται συχνά. Για παράδειγμα, αν έχετε έναν πίνακα που αποθηκεύει δεδομένα κυλιόμενης ταινίας μετοχών και ενημερώνεται κάθε λεπτό, μπορείτε να χρησιμοποιήσετε τη ρύθμιση Χρόνος διατήρησης κρυφής μνήμης για την εκκαθάριση των καταχωρίσεων για τον συγκεκριμένο πίνακα κάθε 59 δευτερόλεπτα. Ανατρέξτε στην ενότητα Κρυφή μνήμη και χρόνος διατήρησης κρυφής μνήμης για καθορισμένους φυσικούς πίνακες.

Εκκαθάριση της κρυφής μνήμης μέσω προγραμματισμού

Μπορείτε να χρησιμοποιήσετε μια αυτοματοποιημένη προσέγγιση για την εκκαθάριση (ή οριστική διαγραφή) της κρυφής μνήμης για το περιβάλλον σας Oracle Analytics Cloud ανάλογα με τις ανάγκες.

Η ενότητα αυτή περιέχει τα εξής θέματα:

Πληροφορίες για το βοηθητικό πρόγραμμα εκκαθάρισης κρυφής μνήμης (purgeoaccache)

Το Oracle Analytics παρέχει ένα βοηθητικό πρόγραμμα που μπορείτε να εκτελέσετε για να εκκαθαρίσετε την κρυφή μνήμη, το οποίο ονομάζεται purgeoaccache.sh. Με αυτό το βοηθητικό πρόγραμμα, μπορείτε να εκκαθαρίσετε την κρυφή μνήμη με διαφορετικούς τρόπους. Μπορείτε να εκκαθαρίσετε ολόκληρη την κρυφή μνήμη ή να εκκαθαρίσετε την κρυφή μνήμη που συσχετίζεται με ένα συγκεκριμένο ερώτημα, πίνακα ή βάση δεδομένων.

  • Εκκαθάριση ολόκληρης της κρυφής μνήμης (SAPurgeAllCache)

    Στο sapurgecache.txt, καλέστε τη συνάρτηση SAPurgeAllCache για να εκκαθαρίσετε όλες τις καταχωρίσεις κρυφής μνήμης. Αυτή είναι η προεπιλεγμένη ρύθμιση.

    Η πρόταση κλήσης μοιάζει ως εξής:
    Call SAPurgeAllCache();
  • Εκκαθάριση κρυφής μνήμης για ένα ερώτημα (SAPurgeCacheByQueryPurge)

    Στο sapurgecache.txt, καλέστε τη συνάρτηση SAPurgeCacheByQueryPurge για να εκκαθαρίσετε τις καταχωρίσεις κρυφής μνήμης που αντιστοιχούν ακριβώς σε ένα συγκεκριμένο ερώτημα.

    Για παράδειγμα, ας υποθέσουμε ότι έχετε το παρακάτω ερώτημα όπου μία ή περισσότερες καταχωρίσεις κρυφής μνήμης ερωτημάτων ανακτούν τα ονόματα όλων των υπαλλήλων που κερδίζουν πάνω από $100.000:
    SELECT lastname, firstname FROM employee WHERE salary > 100000;
    Η παρακάτω πρόταση κλήσης εκκαθαρίζει τις καταχωρίσεις κρυφής μνήμης που συσχετίζονται με αυτό το ερώτημα:
    Call SAPurgeCacheByQuery('SELECT lastname, firstname FROM employee WHERE salary > 100000' );
  • Εκκαθάριση κρυφής μνήμης για έναν πίνακα (SAPurgeCacheByTable)

    Στο sapurgecache.txt, καλέστε τη συνάρτηση SAPurgeCacheByTable για να εκκαθαρίσετε τις καταχωρίσεις κρυφής μνήμης που συσχετίζονται με έναν συγκεκριμένο φυσικό πίνακα βάσης δεδομένων. Η συνάρτηση χρησιμοποιεί έως και τέσσερις παραμέτρους όπου η καθεμιά αντιπροσωπεύει τα συστατικά ενός πλήρως προσδιορισμένου ονόματος φυσικού πίνακα (βάση δεδομένων, κατάλογο, σχήμα, όνομα πίνακα).

    Σημείωση:

    Δεν μπορείτε να χρησιμοποιήσετε χαρακτήρες μπαλαντέρ στις παραμέτρους συνάρτησης. Επίσης, τόσο το όνομα βάσης δεδομένων όσο και το όνομα πίνακα είναι υποχρεωτικές παράμετροι, επομένως, δεν μπορεί να είναι null.
    Για παράδειγμα, ας υποθέσουμε ότι έχετε έναν πίνακα με το πλήρως προσδιορισμένο όνομα DBName.CatName.SchName.TabName. Η παρακάτω πρόταση κλήσης εκκαθαρίζει τις καταχωρίσεις κρυφής μνήμης που συσχετίζονται με αυτόν τον πίνακα στο φυσικό επίπεδο του μοντέλου σημασιολογίας:
    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 με τα δεδομένα σας:

Λήψη και ρύθμιση του βοηθητικού προγράμματος εκκαθάρισης κρυφής μνήμης

Πραγματοποιήστε λήψη του BI-JDBC.zip και του bi-jdbc-all.jar και ρυθμίστε το βοηθητικό πρόγραμμα.

Λήψη και ρύθμιση του βοηθητικού προγράμματος εκκαθάρισης κρυφής μνήμης

Παροχή πληροφοριών σύνδεσης OAuth

Χρησιμοποιήστε την κονσόλα OCI για να λάβετε τις λεπτομέρειες σύνδεσης OAuth που απαιτούνται για τη σύνδεση με το Oracle Analytics Cloud και εισαγάγετε τις πληροφορίες στο bijbdc.properties.

Προσθήκη λεπτομερειών σύνδεσης στο bijbdc.properties

Εκτέλεση του βοηθητικού προγράμματος εκκαθάρισης κρυφής μνήμης Προσδιορίστε την κρυφή μνήμη που θέλετε να εκκαθαρίσετε και εκτελέστε το βοηθητικό πρόγραμμα εκκαθάρισης κρυφής μνήμης για να εκκαθαρίσετε την καθορισμένη κρυφή μνήμη. Εκτέλεση του βοηθητικού προγράμματος εκκαθάρισης κρυφής μνήμης (purgeoaccache)
Δημιουργία δέσμης ενεργειών για την τακτική εκκαθάριση της κρυφής μνήμης (Προαιρετικό) Χρησιμοποιήστε μια εργασία Cron (ή παρόμοια) για να εκκαθαρίζετε την κρυφή μνήμη σύμφωνα με ένα τακτικό πρόγραμμα που ταιριάζει στις ανάγκες του οργανισμού σας. Δημιουργία δέσμης ενεργειών για την τακτική εκκαθάριση της κρυφής μνήμης βάσει προγράμματος

Λήψη και ρύθμιση του βοηθητικού προγράμματος εκκαθάρισης κρυφής μνήμης

Για να είναι δυνατή η χρήση του βοηθητικού προγράμματος εκκαθάρισης κρυφής μνήμης, πρέπει να πραγματοποιήσετε λήψη του BI-JDBC.zip και να εκτελέσετε ορισμένες εργασίες ρύθμισης. Για παράδειγμα, πρέπει να αποκτήσετε το bijdbc-all.jar και να ορίσετε τη μεταβλητή JAVA_HOME.

  1. Πραγματοποιήστε λήψη του αρχείου BI-JDBC.zip.
  2. Αποσυμπιέστε το αρχείο BI-JDBC.zip.
  3. Εξοικειωθείτε με τους φακέλους και τα αρχεία που ακολουθούν:
    • \certs: Ο φάκελος στον οποίον θα αντιγράψετε τα αρχεία πιστοποιητικού και ιδιωτικών κλειδιών που απαιτούνται για την εξουσιοδότηση JWT OAuth 2.0.
    • \lib: Ο φάκελος στον οποίον θα αντιγράψετε το bijdbc-all.jar. Αυτό το αρχείο jar περιέχει τα προγράμματα οδήγησης JDBC που χρησιμοποιούνται για τη σύνδεση στο Oracle Analytics Cloud.
    • \props: Αυτός ο φάκελος περιέχει αρχεία διαμόρφωσης για το βοηθητικό πρόγραμμα εκκαθάρισης κρυφής μνήμης.
    • bijdbc.properties: Το βοηθητικό πρόγραμμα εκκαθάρισης κρυφής μνήμης χρησιμοποιεί πληροφορίες σε αυτό το αρχείο για τη σύνδεση στο Oracle Analytics Cloud. Υπάρχουν δύο εκδόσεις αυτού του αρχείου. Η έκδοση στο \rowner περιέχει τις παραμέτρους σύνδεσης που χρειάζεται να διαμορφώσετε για να συνδεθείτε ως "κάτοχος πόρου". Η έκδοση στο \jwt περιέχει τις παραμέτρους σύνδεσης που χρειάζεται να διαμορφώσετε για να συνδεθείτε με JWT (διακριτικό ιστού JSON).
    • sapurgecache.txt: Το βοηθητικό πρόγραμμα εκκαθάρισης κρυφής μνήμης χρησιμοποιεί αυτό το αρχείο για να προσδιορίσει ποια κρυφή μνήμη είναι για εκκαθάριση, δηλαδή, τα πάντα ή τις καταχωρίσεις κρυφής μνήμης για ένα συγκεκριμένο ερώτημα, έναν πίνακα ή μια βάση δεδομένων.
    • \src: Ο φάκελος που περιέχει το αρχείο purgecache.jar.
    • purgeoaccache.bat και purgeoaccache.sh: Το βοηθητικό πρόγραμμα που εκτελείτε για την εκκαθάριση της κρυφής μνήμης.
  4. Ελέγξτε ότι το JAVA_HOME έχει οριστεί σωστά στο purgeoaccache (.sh ή .bat).
    1. Στον φάκελο BI-JDBC, ανοίξτε το αρχείο purgeoaccache που σκοπεύετε να χρησιμοποιήσετε (.sh για Linux, .bat για Windows).
    2. Ελέγξτε ότι η μεταβλητή JAVA_HOME είναι ο κατάλληλος φάκελος JDK στο περιβάλλον σας και ενημερώστε την, αν χρειάζεται.
  5. Λάβετε τα προγράμματα οδήγησης JDBC που απαιτούνται για τη σύνδεση στο Oracle Analytics Cloud (bijdbc-all.jar ).
    1. Αν δεν το έχετε κάνει ήδη, πραγματοποιήστε λήψη του προγράμματος οδήγησης JDBC. Δείτε την ενότητα Λήψη του προγράμματος οδήγησης JDBC στον οδηγό Σύνδεση του Oracle Analytics Cloud με τα δεδομένα σας.
    2. Αντιγράψτε το αρχείο bijdbc-all.jar και επικολλήστε το στο BI-JDBC/lib.

Προσθήκη λεπτομερειών σύνδεσης στο bijbdc.properties

Χρησιμοποιήστε την κονσόλα του Oracle Cloud Infrastructure (OCI) για να λάβετε τις πληροφορίες σύνδεσης που απαιτούνται για το αρχείο bijdbc.properties.

Για να ολοκληρώσετε αυτή την εργασία, πρέπει να έχετε δικαίωμα πρόσβασης στην κονσόλα του OCI.
  1. Συνδεθείτε στην κονσόλα του OCI και πλοηγηθείτε στη σελίδα "Πρόσθετες λεπτομέρειες" για το στιγμιότυπό σας Oracle Analytics Cloud.
    1. Στην κονσόλα του OCI, κάντε κλικ στο Εικονίδιο μενού πλοήγησης στην επάνω αριστερή γωνία.
    2. Κάντε κλικ στην επιλογή Analytics & AI. Στην ενότητα Analytics, κάντε κλικ στην επιλογή Analytics Cloud.
    3. Επιλέξτε το διαμέρισμα που περιέχει το στιγμιότυπο Oracle Analytics Cloud που αναζητάτε.
    4. Κάντε κλικ στο όνομα του στιγμιότυπου.
    5. Κάντε κλικ στην επιλογή Πρόσθετες λεπτομέρειες.
  2. Βρείτε τις πληροφορίες σύνδεσης που απαιτούνται για το αρχείο bijdbc.properties.
    1. Για να λάβετε το oacHostname και το idcsEndpointUrl, στην ενότητα Πληροφορίες δικτύωσης, αντιγράψτε την τιμή ονόματος κεντρικού υπολογιστή και στην ενότητα Πάροχος ταυτοτήτων, αντιγράψτε την τιμή διαμοίρασης.
    2. Για να λάβετε το idcsClientId, στην ενότητα Πάροχος ταυτοτήτων, κάντε κλικ στον δεσμό εφαρμογής, για να αποκτήσετε πρόσβαση στη διαμόρφωση OAuth για το στιγμιότυπό σας. Μεταβείτε στην ενότητα Γενικές πληροφορίες και καταγράψτε το αναγνωριστικό client.
    3. Για να λάβετε το idcsClientScope, μεταβείτε με κύλιση προς τα κάτω στην ενότητα "Διαμορφώστε τα API εφαρμογών που πρέπει να προστατευτούν με OAuth" και καταγράψτε την τιμή εμβέλειας.
    4. Αν χρησιμοποιείτε τον τύπο δήλωσης κατόχου πόρου για να ασφαλίσετε τη σύνδεση JDBC με το Oracle Analytics Cloud, λάβετε το idcsClientSecret. Μεταβείτε στην ενότητα Γενικές πληροφορίες και καταγράψτε τον μυστικό κωδικό client.
    5. Αν χρησιμοποιείτε τον τύπο δήλωσης JWT για να ασφαλίσετε τη σύνδεση JDBC με το Oracle Analytics Cloud, λάβετε το certificateFile και το privateKeyFile, δηλαδή, το όνομα και τη θέση του αρχείου .cert και του αρχείου .pem που χρησιμοποιήσατε για να δημιουργήσετε τη διαμόρφωση OAuth για το στιγμιότυπό σας και αντιγράψατε στον φάκελο /certs.

      Σημείωση:

      Αν δεν έχετε αντιγράψει το αρχείο .cert και το αρχείο .pem στον φάκελο cert, πρέπει να το κάνετε τώρα.
  3. Αντιγράψτε το αρχείο bijdbc.properties που θέλετε να χρησιμοποιήσετε και επικολλήστε το στον φάκελο BI-JDBC/props/, για να μπορέσετε να το προσαρμόσετε.
    Το πρότυπο κατόχου πόρου βρίσκεται στον φάκελο props/rowner. Το πρότυπο JWT βρίσκεται στον φάκελο props/jwt.
  4. Προσθέστε τις λεπτομέρειες σύνδεσης που καταγράψετε στο βήμα 2, μαζί με το όνομα χρήστη και τον κωδικό πρόσβασης διαχειριστή στο αρχείο bijdbc.properties.
    Παράδειγμα κατόχου πόρου:
    ########OAC Hostname Value############
    oacHostname=<Hostname value>
    
    ######Below Values Collected From IDCS Confidential App#########
    idcsEndpointUrl=<Stripe value>
    idcsClientId=<Client ID value>
    idcsClientScope=<concatenation of the Primary audience and Scope values>
    idcsClientSecret=<Client Secret value>
    
    ######Service Administrator UserId & Password#########
    user=<OAC admin username>
    password=<OAC admin password>
    Παράδειγμα JWT:
    ########OAC Hostname Value############
    oacHostname=<Hostname value>
    
    ######Below Values Collected From IDCS Confidential App#########
    idcsEndpointUrl=<Stripe value>
    idcsClientId=<Client ID value>
    idcsClientScope=<Scope value>
    
    ######Public Key and Private Key File Paths########
    certificateFile=./certs/bijdbcclient.cert
    privateKeyFile=./certs/bijdbcclient.pem <private key file bijdbcclient.pem location that exist inside BI-JDBC/certs>
    
    ######Service Administrator UserId#########
    user=<OAC admin username>
    
    ######Optional Properties########
    LOGFILEPATH=./temp
    LOGLEVEL=SEVERE
  5. Αποθηκεύστε και κλείστε το αρχείο.

Εκτέλεση του βοηθητικού προγράμματος εκκαθάρισης κρυφής μνήμης (purgeoaccache)

Αφού ολοκληρώσετε τη ρύθμιση και διαμορφώσετε το αρχείο bijdbc.properties, είστε έτοιμοι να εκτελέσετε τη δέσμη ενεργειών. Η δέσμη ενεργειών θα εκκαθαρίσει ολόκληρη την κρυφή μνήμη από προεπιλογή. Αν θέλετε να εκκαθαρίσετε καταχωρίσεις κρυφής μνήμης για ένα συγκεκριμένο ερώτημα, πίνακα ή βάση δεδομένων, καθορίστε την απαιτούμενη συνάρτηση και τις παραμέτρους στο sapurgecache.txt.

  1. Προαιρετικά: Στον φάκελο BI-JDBC/props, ανοίξτε το αρχείο sapurgecache.txt και ενημερώστε την πρόταση κλήσης, για να καθορίσετε τις καταχωρίσεις κρυφής μνήμης που θέλετε να εκκαθαρίσει η δέσμη ενεργειών. Δείτε Πληροφορίες για το βοηθητικό πρόγραμμα εκκαθάρισης κρυφής μνήμης (purgeoaccache).
  2. Εκτελέστε το βοηθητικό πρόγραμμα εκκαθάρισης κρυφής μνήμης (BI-JDBC\purgeoaccache). Σε Linux, εκτελέστε το αρχείο purgeoaccache.sh. Σε Windows, εκτελέστε το αρχείο purgeoaccache.bat.
Εμφανίζεται ένα μήνυμα που υποδεικνύει ότι η κρυφή μνήμη εκκαθαρίστηκε με επιτυχία.

Δημιουργία δέσμης ενεργειών για την τακτική εκκαθάριση της κρυφής μνήμης βάσει προγράμματος

Μπορείτε να δημιουργήσετε μια προσαρμοσμένη δέσμη ενεργειών, όπως μια εργασία Cron (ή παρόμοια), η οποία εκκαθαρίζει την κρυφή μνήμη σύμφωνα με ένα πρόγραμμα που ταιριάζει στις ανάγκες του οργανισμού σας.

Για παράδειγμα, μπορείτε να εκτελείτε μια προσαρμοσμένη δέσμη ενεργειών κάθε 11:00 μ.μ. καθημερινά, για την οριστική διαγραφή ολόκληρης της κρυφής μνήμης. Σε αυτή την περίπτωση, η καταχώριση Cron μπορεί να έχει την εξής μορφή:
$crontab -e
0 23 * * * /bin/bash ~/BI-JDBC/purgeoaccache.sh >> ~/BI-JDBC/temp/purgeoaccache.log 2>&1