Πίνακας περιεχομένων:
Βίντεο: Cloud Computing - Computer Science for Business Leaders 2016 2024
Η προσωρινή μνήμη προσωρινής αποθήκευσης δεδομένων της Oracle 12c είναι τυπικά το μεγαλύτερο τμήμα του SGA. Έχει δεδομένα που προέρχονται από τα αρχεία στο δίσκο. Επειδή η πρόσβαση σε δεδομένα από το δίσκο είναι πιο αργή από ό, τι από τη μνήμη, ο μοναδικός σκοπός της προσωρινής μνήμης buffer της βάσης δεδομένων είναι η προσωρινή αποθήκευση των δεδομένων στη μνήμη για ταχύτερη πρόσβαση. Η προσωρινή μνήμη προσωρινής αποθήκευσης βάσεων δεδομένων μπορεί να περιέχει δεδομένα από όλους τους τύπους αντικειμένων:
Πίνακες
-
Ευρετήρια
-
Δεδομένα συστήματος
-
Στην μνήμη προσωρινής μνήμης
ο όρος buffer αναφέρεται σε μπλοκ δεδομένων. Ένα μπλοκ βάσης δεδομένων είναι το ελάχιστο ποσό αποθήκευσης που η Oracle διαβάζει ή γράφει. Όλα τα τμήματα αποθήκευσης που περιέχουν δεδομένα αποτελούνται από μπλοκ. Όταν ζητάτε δεδομένα από δίσκο, το Oracle διαβάζει τουλάχιστον ένα μπλοκ. Ακόμα και αν ζητήσετε μόνο μία γραμμή, πολλές σειρές στον ίδιο πίνακα ενδέχεται να ανακτηθούν. Το ίδιο ισχύει αν ζητήσετε μία στήλη σε μια σειρά. Η Oracle διαβάζει ολόκληρο το μπλοκ, το οποίο πιθανότατα έχει πολλές σειρές και όλες τις στήλες αυτής της σειράς.
Είναι εφικτό να σκεφτεί κανείς ότι εάν ο πίνακας των τμημάτων σας έχει μόνο δέκα σειρές, το όλο θέμα μπορεί να διαβαστεί ακόμα και αν ζητάτε το όνομα ενός μόνο τμήματος.
Η κατάσταση cache buffer στο Oracle 12cΗ μνήμη προσωρινής αποθήκευσης
ελέγχει τα μπλοκ που παραμένουν ανάλογα με το διαθέσιμο χώρο και την κατάσταση μπλοκ (παρόμοια με τον τρόπο με τον οποίο η κοινόχρηστη πισίνα αποφασίζει τι παραμένει η SQL). Η προσωρινή μνήμη buffer χρησιμοποιεί τη δική της έκδοση του αλγόριθμου LRU. -> Ένα μπλοκ στην προσωρινή μνήμη buffer μπορεί να είναι σε μία από τις τρεις καταστάσεις:
Ελεύθερη:Δεν χρησιμοποιείται προς το παρόν για τίποτα
-
Καρφωμένο: > Dirty:
-
Το μπλοκ έχει αλλάξει αλλά δεν έχει ακόμη εγγραφεί στο δίσκο Δωρεάν μπλοκ
-
Ιδανικά, τα ελεύθερα μπλοκ είναι διαθέσιμα όποτε τα χρειάζεστε. Ωστόσο, αυτό πιθανόν να μην συμβαίνει εκτός εάν η βάση δεδομένων σας είναι τόσο μικρή ώστε το όλο θέμα να χωρέσει στη μνήμη. Ο αλγόριθμος LRU λειτουργεί λίγο διαφορετικά στην προσωρινή μνήμη buffer από ό, τι κάνει στην κοινόχρηστη πισίνα. Καταγράφει κάθε μπλοκ και έπειτα φορές για πόσο καιρό έχει από τότε που είχε πρόσβαση. Για παράδειγμα, ένα μπλοκ παίρνει ένα σημείο κάθε φορά που αγγίζει.
Όσο υψηλότερα είναι τα σημεία, τόσο λιγότερο πιθανό είναι να ξεπλυθεί το μπλοκ από τη μνήμη. Ωστόσο, πρέπει να είναι προσβάσιμη συχνά ή το σκορ μειώνεται. Ένα μπλοκ πρέπει να εργαστεί σκληρά για να μείνει στη μνήμη, αν ο ανταγωνισμός για τους πόρους μνήμης είναι υψηλός.
Παίρνοντας σε κάθε μπλοκ ένα σκορ και χρόνο αποτρέπει την εμφάνιση αυτού του τύπου της κατάστασης: Ένα μπλοκ αποκτά πρόσβαση σε μεγάλο βαθμό στο τέλος του μήνα για αναφορές.Η βαθμολογία του είναι υψηλότερη από οποιοδήποτε άλλο μπλοκ του συστήματος. Αυτό το μπλοκ δεν έχει ποτέ πρόσβαση ξανά.
Καθίζει εκεί σπατάλη μνήμης μέχρι να γίνει επανεκκίνηση της βάσης δεδομένων ή ένα άλλο μπλοκ τελικά σκοράρει αρκετά σημεία για να το χτυπήσει έξω. Η συνιστώσα χρόνου εξελίσσεται πολύ γρήγορα αφού δεν την έχετε πλέον πρόσβαση.
Κλειδωμένα μπλοκ
Ένα μπλοκ στο οποίο γίνεται πρόσβαση είναι ένα
καρφωμένο μπλοκ.
Το μπλοκ είναι κλειδωμένο (ή καρφωμένο) στην προσωρινή μνήμη του buffer, ώστε να μην μπορεί να γερνάει από την προσωρινή μνήμη buffer, ενώ η διαδικασία Oracle (συχνά αντιπροσωπεύει έναν χρήστη) έχει πρόσβαση σε αυτήν.
Βρώμικα μπλοκ Ένα τροποποιημένο μπλοκ είναι ένα βρώμικο μπλοκ .
Για να βεβαιωθείτε ότι οι αλλαγές σας διατηρούνται σε όλες τις διακοπές λειτουργίας της βάσης δεδομένων, αυτά τα βρώμικα μπλοκ πρέπει να γράφονται από την προσωρινή μνήμη buffer στο δίσκο. Η βάση δεδομένων ονομάζει βρώμικα μπλοκ σε μια βρώμικη λίστα ή ουρά γραφής.
Μπορεί να σκεφτείτε ότι κάθε φορά που τροποποιείται ένα μπλοκ, πρέπει να γράφεται στον δίσκο για να ελαχιστοποιηθούν τα χαμένα δεδομένα. Αυτό δεν συμβαίνει - ούτε καν όταν υπάρχει δέσμευση (όταν αποθηκεύετε τις αλλαγές σας μόνιμα)! Διάφορες δομές αποτρέπουν τα χαμένα δεδομένα.
Επιπλέον, η Oracle αντιμετωπίζει πρόβλημα παιχνιδιού. Η απόδοση του συστήματος θα ανιχνεύτηκε εάν γράψατε μπλοκ σε δίσκο για κάθε τροποποίηση. Για να καταπολεμηθεί αυτό, η Oracle παίζει τις πιθανότητες ότι η βάση δεδομένων είναι απίθανο να αποτύχει και γράφει μπλοκ στο δίσκο μόνο σε μεγαλύτερες ομάδες. Μην ανησυχείτε. δεν υπάρχει καν κίνδυνος για απώλεια δεδομένων. Η Oracle παίρνει απόδοση από τη βάση δεδομένων αυτή τη στιγμή
με την πιθανή δαπάνη μιας ανάκτησης που παίρνει περισσότερο
αργότερα. Επειδή σπάνια συμβαίνουν αποτυχίες σε σωστά διαχειριζόμενα συστήματα, είναι ένας φτηνός τρόπος για να κερδίσετε κάποια απόδοση. Ωστόσο, δεν είναι σαν να εγκαταλείπει η Oracle βρώμικα μπλοκ παντού χωρίς να καθαρίσει μόνος του. Αποκλεισμός ενεργοποιήσεων εγγραφής στο Oracle 12c Τι ενεργοποιεί μια εγγραφή μπλοκ και επομένως ένα βρώμικο μπλοκ; Στη βάση δεδομένων εκδίδεται μια εντολή τερματισμού λειτουργίας.
Εμφανίζεται ένα πλήρες ή μερικό σημείο ελέγχου - αυτό συμβαίνει όταν το σύστημα αποβάλλει περιοδικά όλα τα βρώμικα buffers στο δίσκο.
Το όριο χρόνου ανάκτησης, που έχετε ορίσει, ικανοποιείται. ο συνολικός αριθμός των βρώμικων μπλοκ προκαλεί απαράδεκτο χρόνο ανάκτησης.
-
Απαιτείται ένα ελεύθερο μπλοκ και κανένας δεν βρίσκεται μετά από μια δεδομένη αναζήτηση.
-
Ορισμένες εντολές γλώσσας ορισμού δεδομένων (DDL). (Οι εντολές DDL είναι εντολές SQL που ορίζουν αντικείμενα σε μια βάση δεδομένων.)
-
Κάθε τρία δευτερόλεπτα.
-
Άλλοι λόγοι. Ο αλγόριθμος είναι περίπλοκος και δεν μπορείτε να είστε βέβαιοι με όλες τις αλλαγές που συμβαίνουν σε κάθε έκδοση λογισμικού.
-
Το γεγονός είναι ότι η βάση δεδομένων παραμένει αρκετά απασχολημένη σε γραφήματα σε περιβάλλον όπου υπάρχουν πολλές αλλαγές.