MEMORY_TARGET gibt den nutzbaren Speicher im gesamten Oracle-System an, einschließlich SGA und PGA. Vor Oracle Database Release 11g mussten SGA und PGA separat optimiert werden.
Wenn für eine Datenbank ein Upgrade von Oracle 10g auf 11g durchgeführt wird, kann MEMORY_TARGET festgelegt werden, indem SGA_TARGET und PGA_AGGREGATE_TARGET einfach aus der Oracle 10g-Datenbank hinzugefügt werden.
Wenn für eine Datenbank ein Upgrade von Oracle 9i auf 11g durchgeführt wird, kann MEMORY_TARGET festgelegt werden, indem PGA_AGGREGATE_TARGET und alle SGA-Komponenten, einschließlich DB_CACHE_SIZE, SHARED_POOL_SIZE, LARGE_POOL_SIZE, JAVA_POOL_SIZE usw., hinzugefügt werden.
Wenn für eine Datenbank kein Upgrade von einer früheren Version durchgeführt wurde und keine Historienverweise vorhanden sind, empfiehlt Oracle, diesen Parameter anfänglich auf 1 bis 3 GB zu setzen je nach Systemressourcen und Systemgrenzwerten. Nachdem die Datenbank einige Zeit in Verwendung ist, kann dieser Parameter wie folgt optimiert werden: (Diese Optimierung gilt auch für die zwei Upgradeszenarios oben).
SQL> select * from v$memory_target_advice order by memory_size;
MEMORY_SIZE MEMORY_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR VERSION
180 .5 458 1.344 0
270 .75 367 1.0761 0
360 1 341 1 0
450 1.25 335 .9817 0
540 1.5 335 .9817 0
630 1.75 335 .9817 0
720 2 335 .9817 0
Die Zeile mit dem MEMORY_SIZE_FACTOR-Wert "1" zeigt die aktuelle Größe des Speichers, entsprechend der Einstellung des MEMORY_TARGET-Initialisierungsparameters, sowie die Datenbankzeit, die zum Ausführen des aktuellen Workloads erforderlich ist. In vorherigen und nachfolgenden Zeilen zeigen die Ergebnisse verschiedene alternative MEMORY_TARGET-Größen. Für die einzelnen alternativen Größen zeigt die Datenbank den Größenfaktor (Vielfaches der aktuellen Größe) und die geschätzte Datenbankzeit zum Ausführen des aktuellen Workloads, wenn der MEMORY_TARGET-Parameter in die alternative Größe geändert wird. Beachten Sie, dass für eine Gesamtspeichergröße, die kleiner als die aktuelle Größe von MEMORY_TARGET (in diesem Beispiel 360) ist, die geschätzte Datenbankzeit (ESTD_DB_TIME) höher ist. Beachten Sie außerdem, dass in diesem Beispiel eine Erhöhung der Gesamtspeichergröße auf über 450 MB keine Vorteile bringt, da der ESTD_DB_TIME-Wert nicht gesenkt wird. In diesem Beispiel ist die empfohlene MEMORY_TARGET-Größe deshalb 450 MB.