Gestion dynamique de la mémoire
1. Principes
Depuis Oracle9i, la SGA et la PGA sont dynamiques. Elles peuvent être modifiées dynamiquement alors que l’instance est en cours de fonctionnement, c’est-à-dire augmentées ou diminuées, sans devoir arrêter la base. De plus, depuis Oracle10g, la mémoire partagée peut être gérée automatiquement et depuis Oracle11g la totalité de la mémoire (SGA et PGA) peut l’être aussi (voir la section L’instance du chapitre Les bases de l’architecture Oracle).
Plusieurs paramètres relatifs à la gestion de la mémoire (PGA ou SGA) sont modifiables dynamiquement par l’intermédiaire de l’ordre SQL ALTER SYSTEM :
-
MEMORY_TARGET
-
SGA_TARGET
-
DB_CACHE_SIZE et éventuellement les différents paramètres DB_nK_CACHE_ SIZE (n valant 2, 4, 8, 16 ou 32)
-
SHARED_POOL_SIZE
-
LARGE_POOL_SIZE
-
JAVA_POOL_SIZE
-
STREAMS_POOL_SIZE
-
RESULT_CACHE_MAX_SIZE
-
PGA_AGGREGATE_TARGET
-
PGA_AGGREGATE_LIMIT
Seule la taille du Redo Log Buffer (paramètre LOG_BUFFER) ne peut pas être modifiée dynamiquement (mais sa valeur par défaut est généralement satisfaisante).
La taille maximum de la mémoire de l’instance est définie par le paramètre MEMORY_MAX_TARGET et la taille maximum de la SGA par le paramètre SGA_MAX_SIZE. Ces deux paramètres ne sont pas dynamiques et sont calculés, par défaut, au démarrage...