Oracle Datenbank-Tuning - Der Shared Pool

Cache Hit und Cache Miss

Dieser Parsing-Prozess kann vermieden werden, wenn sich viele Anweisungen als kompilierte Versionen im Shared Pool befinden. Das Auffinden einer kompilierten Version wird Cache Hit genannt. Cache Miss wird die Situation genannt, dass keine kompilierte Version im Shared Pool existiert und der Server-Prozess die Anweisung parsen muss.

Damit es zu einem Cache Hit kommt, müssen beide Anweisungen möglichst exakt übereinstimmen. Die kleinste Abweichung, z.B. Großbuchstaben statt Kleinbuchstaben, führt zu einem Cache Miss. Über den Initialisierungsparameter CURSOR_SHARING können Sie steuern, wann die Anweisungen als gleich angesehen werden. Die möglichen Werte sind EXACT, SIMILAR und FORCE. Ist der Parameter auf EXACT (Default) gesetzt, dann werden nur absolut identische Texte als gleiche Statements angesehen. SIMILAR gestattet Unterschiede in einigen Literalen und FORCE in allen Literalen. Andere Werte als EXACT beinhalten die Gefahr, dass unterschiedliche Befehle als gleich angesehen werden. Das Problem mit den Literalen kann umgangen werden, wenn Binde-Variablen in den Applikationen benutzt werden.

Das Optimierungsziel für den Shared Pool ist, die Anzahl von Cache Hits zu maximieren. Der Shared Pool besteht aus den folgenden drei Komponenten:

  • Library Cache

  • Data Dictionary Cache

  • User Global Area

Im Library Cache werden SQL- und PL/SQL-Anweisungen gespeichert. Für eine Anweisung werden die folgenden Informationen gespeichert:

  • der Text der Anweisung

  • der Hashed Value

  • die kompilierte Version der Anweisung (P-Code)

  • alle relevanten Statistiken

  • der Ausführungsplan