Impostazione delle dimensioni della memoria totale (MEMORY_TARGET)

Il parametro MEMORY_TARGET specifica la memoria utilizzabile a livello di sistema Oracle, comprese sia la memoria SGA che la memoria PGA. Prima di Oracle Database release 11g, era necessario eseguire il tuning della memoria SGA e PGA separatamente.

Se è stato eseguito l'aggiornamento di un database da Oracle 10g a 11g, il parametro MEMORY_TARGET può essere definito mediante l'aggiunta dei parametri SGA_TARGET e PGA_AGGREGATE_TARGET da Oracle Database 10g.

Se è stato eseguito l'aggiornamento di un database da Oracle 9i a 11g, il parametro MEMORY_TARGET può essere definito mediante l'aggiunta del parametro PGA_AGGREGATE_TARGET e di tutti i componenti SGA, compresi DB_CACHE_SIZE, SHARED_POOL_SIZE, LARGE_POOL_SIZE, JAVA_POOL_SIZE e così via.

Se non è stato eseguito l'aggiornamento di un database da una versione precedente e se non sono presenti riferimenti cronologici, Oracle consiglia di impostare inizialmente questo parametro su un valore da 1 a 3 GB, a seconda delle risorse e dei limiti del sistema. Una volta trascorso un periodo di utilizzo del database, è possibile eseguire tuning di questo parametro come descritto di seguito. Questo tuning è valido anche per i due scenari di aggiornamento precedentemente descritti.

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

La riga contenente il parametro MEMORY_SIZE_FACTOR impostato su 1 indica la dimensione corrente della memoria, come definita dal parametro di inizializzazione MEMORY_TARGET, e la quantità di tempo del database necessaria per completare il carico di lavoro corrente. Nelle righe precedenti e successive, il risultato indica un numero di dimensioni alternative per il parametro MEMORY_TARGET. Per ogni dimensione alternativa, il database mostra il fattore di dimensione (multiplo della dimensione corrente) e il tempo del database stimato per il completamento del carico di lavoro corrente se il parametro MEMORY_TARGET è stato impostato sulla dimensione alternativa. A una dimensione di memoria totale minore della dimensione corrente del parametro MEMORY_TARGET (360 in questo esempio), corrisponde l'aumento del tempo del database stimato (ESTD_DB_TIME). In questo esempio, inoltre, non si ottiene alcun vantaggio dall'aumento della dimensione totale della memoria oltre il valore 450 MB, poiché a fronte di ciò non corrisponde una riduzione del valore del parametro ESTD_DB_TIME. In questo esempio, la dimensioni consigliata del parametro MEMORY_TARGET sarà pertanto pari a 450 MB.