Perf sga free pool

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus de diagnostic
Domaine Performance
Voir aussi Perf sga usage · Perf shared pool memory

Perf sga free pool calcule, pour chaque pool mémoire de la SGA (shared pool, large pool, java pool, streams pool...), le volume alloué, le volume libre et le pourcentage de mémoire libre. Vue plus synthétique que Perf sga usage, qui détaille composant par composant plutôt que pool par pool.

Script

COLUMN pool    HEADING 'Pool'
COLUMN name    HEADING 'Composant'
COLUMN sgasize HEADING 'Alloué'     FORMAT 999,999,999
COLUMN bytes   HEADING 'Libre'      FORMAT 999,999,999

SELECT
    f.pool
  , f.name
  , s.sgasize
  , f.bytes
  , ROUND(f.bytes / s.sgasize * 100, 2) "% Libre"
FROM
    (SELECT SUM(bytes) sgasize, pool FROM v$sgastat GROUP BY pool) s
  , v$sgastat f
WHERE
    f.name = 'free memory'
  AND f.pool = s.pool
/

Interprétation

  • Un pourcentage libre chroniquement bas (moins de 5-10 %) sur le shared pool est un signal avant-coureur d'ORA-04031 (impossible d'allouer de la mémoire partagée) — anticiper avant que l'erreur ne survienne en production.
  • À l'inverse, un pourcentage libre très élevé et stable dans la durée indique un pool surdimensionné : mémoire qui pourrait être réallouée ailleurs (buffer cache, autre pool) si le système est en gestion manuelle de la mémoire.
  • Avec lAutomatic Shared Memory Management (ASMM, SGA_TARGET) ou lAutomatic Memory Management (AMM, MEMORY_TARGET), Oracle rééquilibre lui-même les pools selon la charge — ce script reste utile pour vérifier que ce rééquilibrage automatique fonctionne comme attendu, mais les seuils manuels ci-dessus sont moins déterminants.

Voir aussi