Perf sga usage

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

Perf sga usage liste tous les composants mémoire de la SGA (v$sgastat), triés du plus gros au plus petit, avec leur poids relatif en pourcentage de la SGA totale (v$sga).

Script

SET LINESIZE 145
SET PAGESIZE 9999
SET FEEDBACK OFF
SET VERIFY   OFF

COLUMN bytes   FORMAT 999,999,999
COLUMN percent FORMAT 999.99

BREAK ON report
COMPUTE SUM OF bytes ON report

SELECT
    a.name
  , a.bytes
  , ROUND(a.bytes / b.sum_bytes * 100, 2) percent
FROM
    v$sgastat a
  , (SELECT SUM(value) sum_bytes FROM v$sga) b
ORDER BY bytes DESC
/

Le calcul du pourcentage dans le script d'origine (a.bytes/(b.sum_bytes*100)) divisait par sum_bytes*100 au lieu de multiplier le ratio par 100 : le résultat affiché était donc 10 000 fois trop petit (une valeur attendue de 12,34 % s'affichait comme 0,0012). La formule ci-dessus (a.bytes / b.sum_bytes * 100) corrige ce calcul.

Interprétation

  • Vue utile pour repérer rapidement quel composant domine la SGA (souvent le buffer cache ou le shared pool selon le profil de charge) avant d'ajuster un paramètre de mémoire précis.
  • Une ligne free memory importante dans un pool précis est normale en usage courant ; c'est sa disparition progressive dans la durée qui doit alerter (voir Perf sga free pool pour un suivi ciblé par pool).
  • Sur une instance en ASMM/AMM, cette photo instantanée varie dans le temps : Oracle redistribue la mémoire entre composants selon la charge — répéter la mesure à différents moments plutôt que se fier à un seul relevé.

Voir aussi