Perf shared pool memory

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 sga free pool

Perf shared pool memory calcule la taille totale et le pourcentage de mémoire libre du seul shared pool, en comparant v$sgastat (mémoire libre effective) et le paramètre shared_pool_size. Version ciblée de Perf sga free pool, qui couvre tous les pools de la SGA.

Script

SET LINESIZE 145
SET PAGESIZE 9999

COLUMN value       FORMAT 999,999,999,999 HEADING 'Taille Shared Pool'
COLUMN bytes       FORMAT 999,999,999,999 HEADING 'Octets libres'
COLUMN percentfree FORMAT 999             HEADING '% Libre'

SELECT
    TO_NUMBER(p.value)      value
  , s.bytes                 bytes
  , (s.bytes / p.value) * 100  percentfree
FROM
    v$sgastat   s
  , v$parameter p
WHERE
    s.name = 'free memory'
  AND s.pool = 'shared pool'
  AND p.name = 'shared_pool_size'
/

Interprétation

  • Pourcentage libre chroniquement bas (< 5-10 %) : risque d'ORA-04031 à surveiller de près, notamment lors de pics de nouvelles requêtes non partagées (parsing excessif).
  • Limite connue de ce script : sur une instance en Automatic Shared Memory Management (SGA_TARGET) ou Automatic Memory Management (MEMORY_TARGET), le paramètre shared_pool_size peut valoir 0 (taille pilotée automatiquement) — la requête retourne alors une division par zéro ou une ligne vide. Dans ce cas, utiliser v$sgainfo (ligne Shared Pool Size) ou v$sga_dynamic_components à la place de v$parameter.
  • Un pourcentage libre très élevé en continu indique un shared pool surdimensionné par rapport au nombre réel d'objets/curseurs à mettre en cache.

Voir aussi

  • Perf sga free pool — même indicateur généralisé à tous les pools de la SGA.
  • Perf sga usage — détail de tous les composants de la SGA.
  • Perf performance snapshot — inclut le Data Dictionary et Library Cache Hit Ratio, deux indicateurs directement liés à la pression sur le shared pool.