Grundlagen der Shared Pool in Oracle 12c

Bestimmte Objekte und Geräte in Oracle 12c werden häufig verwendet. Daher macht es Sinn, sie bereit, Ihnen jedes Mal haben wollen eine Operation zu tun. Außerdem müssen die Daten im Shared Pool wird nie auf die Platte geschrieben.

Der gemeinsame Pool selbst besteht aus vier Hauptbereiche:

  • Bibliothek Cache

  • Wörterbuch Cache

  • Server-Ergebnis-Cache

  • Reserviert Pool

EIN Cache-Speicher im Speicher ist ein temporärer Bereich für eine schnelle erstellt von Informationen holen, die sonst länger dauern könnte abzurufen. Zum Beispiel können die in der vorhergehenden Liste genannten Caches enthalten vorberechnete Informationen. Anstelle eines Benutzerwerte jedes Mal zu berechnen, aufweist, kann der Benutzer die Informationen in einem Cache zugreifen.

Die Bibliothek Cache in Oracle 12c

Die Bibliothek-Cache ist wie, was es heißt: eine Bibliothek. Genauer gesagt, ist es eine Bibliothek von ready-to-go-SQL-Anweisungen.

Jedes Mal, wenn Sie eine SQL-Anweisung ausführen, geschieht viel im Hintergrund. Diese Hintergrundaktivität wird aufgerufen Parsing. Parsing kann in Bezug auf die Rechenleistung sehr teuer sein.

Während Parsing, passieren einige dieser Dinge:

  • Die Syntax der Anweisung wird geprüft, um sicherzustellen, dass Sie alles richtig eingegeben haben.

  • Die Objekte, die Sie sich beziehen, werden überprüft. Zum Beispiel, wenn Sie eine Tabelle mit dem Namen EMPLOYEE zugreifen möchten, macht Oracle sicher, dass es in der Datenbank vorhanden ist.

  • Oracle stellt sicher, dass Sie die Erlaubnis zu tun, was Sie versuchen zu tun.

  • Der Code wird in eine Datenbank-ready-Format konvertiert. Das Format wird aufgerufen Byte-Code oder p-Code.

  • Oracle bestimmt den optimalen Weg oder Plan. Dies ist bei weitem der teuerste Teil.

Jedes Mal, wenn Sie eine Anweisung ausführen, wird die Information in der Bibliothek Cache gespeichert. Auf diese Weise, das nächste Mal, wenn Sie die Anweisung nicht viel ausführen muss auftreten (wie etwa die Überprüfung von Berechtigungen).

Die Dictionary-Cache in Oracle 12c

Das Wörterbuch-Cache wird auch häufig verwendet für die Analyse, wenn Sie SQL ausführen. Sie können über Sie als eine Sammlung von Informationen darüber denken, und die Objekte der Datenbank an. Es kann Hintergrund-Typ-Informationen überprüfen.

Die Dictionary-Cache wird auch durch die Regeln der Regierten Zuletzt benutzt (LRU) Algorithmus: Wenn es nicht die richtige Größe ist, können Informationen geräumt werden. Nicht mit genügend Platz für die Dictionary-Cache kann die Festplattennutzung auswirken.

Da die Definitionen von Objekten und berechtigungsbasierte Informationen in Datenbankdateien gespeichert werden, hat Oracle Datenträger zu lesen, dass die Informationen in das Dictionary-Cache neu zu laden. Dies ist mehr Zeit in Anspruch, als es aus dem Speicher-Cache zu bekommen. Stellen Sie sich ein System mit Tausenden von Benutzern ständig SQL ausgeführt wird. . . ein nicht ordnungsgemäß bemessen Dictionary-Cache wirklich kann die Leistung beeinträchtigen.

direkt wie die Bibliothek Cache, können Sie nicht die Größe des Dictionary-Cache steuern. Da die Gesamt gemeinsamen Pool Änderungen in der Größe, so auch die Dictionary-Cache.

Der Server Ergebnis-Cache in Oracle 12c

Der Server Ergebnis-Cache besteht aus zwei Teilen:

  • SQL Ergebnis-Cache: Dieser Cache lässt Oracle sehen, dass die angeforderten Daten - aufgefordert durch eine kürzlich ausgeführten SQL-Anweisung - könnte im Speicher abgelegt werden. Diese Situation lässt Oracle die Ausführung Teil des, äh, Ausführung, in Ermangelung eines besseren Begriffs überspringen, und gehen direkt auf das Ergebnis gesetzt, wenn es vorhanden ist.

    Der SQL-Ergebnis-Cache funktioniert am besten auf relativ statische Daten (wie die Beschreibung eines Artikels auf einer E-Commerce-Website).

    Sollten Sie das Ergebnis Cache Sorgen über falsche Daten zurückgegeben? Ganz und gar nicht. Oracle invalidiert automatisch im Ergebnis Cache gespeicherten Daten, wenn eine der darunter liegenden Komponenten modifiziert sind.

  • PL / SQL-Funktion Ergebnis-Cache: Die PL / SQL-Funktion Ergebnis-Cache speichert die Ergebnisse einer Berechnung. Zum Beispiel, sagen Sie haben eine Funktion, die den Wert der auf den Wechselkurs des Euro-Dollar berechnet. Sie werden vielleicht nicht, dass die Ist-Wert gespeichert werden soll, da es sich ständig verändert.

    Stattdessen müssen Sie eine Funktion, die auf Tages- oder Stundensatz ruft den Wert des Dollars zu bestimmen. In einer finanziellen Anwendung könnte dieser Aufruf tausende Male pro Stunde passieren. Statt also die Funktion ausführt, geht es direkt an den PL / SQL-Ergebnis-Cache, um die Daten zwischen den Rate-Updates erhalten. Wenn die Rate Änderung tut, Oracle-re führt die Funktion und aktualisiert den Ergebnis-Cache.

Der reservierte Pool in Oracle 12c

Wenn Oracle einen großen Teil zuweisen muss (über 5 KB) zusammenhängenden Speicher in den gemeinsamen Pool, ordnet sie den Speicher in dem reservierten Pool. die reservierte Pool Widmet große Speicherzuordnungen zu handhaben verbessert die Leistung und reduziert die Speicher fragementation.

LRU-Algorithmus in Oracle 12c

Wenn die Bibliothek Cache Platz knapp ist, werden Objekte geworfen. Aussagen, die die meisten bleiben in der Bibliothek Cache die längste verwendet werden. Je öfter sie benutzt, desto geringer die Chance sie haben vertrieben werden, wenn die Bibliothek Cache wenig Platz ist.

Die Bibliothek Cache Räumungsprozess basiert auf, was man die Zuletzt benutzt (LRU) Algorithmus. Wenn Ihr Schreibtisch überladen ist, was setzen Sie sich zuerst? Der Stoff, verwenden Sie am wenigsten.

Sie können nicht die Größe der Bibliothek Cache selbst ändern. Die Gesamtgröße des gemeinsamen Pool bestimmt, dass. Wenn Sie zu viele Aussagen denken vertrieben werden, können Sie den gesamten gemeinsamen Pool-Größe erhöhen, wenn Sie es selbst sind zu stimmen. Wenn Sie sich im Stich gelassen Oracle die Stimmung zu tun, packt es freien Speicher von anderswo.

Menü