Sess users by memory

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus de diagnostic
Voir aussi Sess users by CPU · Sess users by cursors · Sess users by io · Sess users by transactions

Sess users by memory liste les sessions connectées triées par mémoire PGA actuellement allouée, avec le pic observé (max) et la mémoire UGA associée.

Même famille de scripts que Sess users by CPU (détail du schéma de requête sur cette page). Distinction PGA/UGA utile à garder en tête : la PGA (Program Global Area) est une zone de mémoire privée à chaque processus serveur ; la UGA (User Global Area) est en principe rattachée à la session — en connexion dedicated server (la configuration la plus courante), elle vit à l'intérieur de la PGA du processus dédié à la session ; en configuration shared server (MTS), elle est en revanche allouée dans la SGA (shared pool), ce qui la rend visible de tous les processus partagés et change son impact sur le dimensionnement mémoire global de l'instance.

Script

SET LINESIZE 180
SET PAGESIZE 50000
SET FEEDBACK 6
SET VERIFY OFF

COLUMN sid                     FORMAT 999999         HEADING 'SID'
COLUMN serial_id               FORMAT 99999999       HEADING 'Serial ID'
COLUMN session_status          FORMAT a9              HEADING 'Statut'
COLUMN oracle_username         FORMAT a12             HEADING 'Utilisateur Oracle'
COLUMN os_username             FORMAT a12             HEADING 'Utilisateur OS'
COLUMN os_pid                  FORMAT a8              HEADING 'PID OS'
COLUMN session_machine         FORMAT a20 TRUNC       HEADING 'Machine'
COLUMN session_program         FORMAT a30 TRUNC       HEADING 'Programme'
COLUMN session_pga_memory      FORMAT 9,999,999,999   HEADING 'Mémoire PGA'
COLUMN session_pga_memory_max  FORMAT 9,999,999,999   HEADING 'PGA max'
COLUMN session_uga_memory      FORMAT 9,999,999,999   HEADING 'Mémoire UGA'
COLUMN session_uga_memory_max  FORMAT 9,999,999,999   HEADING 'UGA max'

SELECT
    s.sid             sid
  , s.serial#         serial_id
  , s.status          session_status
  , s.username        oracle_username
  , s.osuser          os_username
  , p.spid            os_pid
  , s.machine         session_machine
  , s.program         session_program
  , sstat1.value      session_pga_memory
  , sstat2.value      session_pga_memory_max
  , sstat3.value      session_uga_memory
  , sstat4.value      session_uga_memory_max
FROM
    v$process  p
  , v$session  s
  , v$sesstat  sstat1
  , v$sesstat  sstat2
  , v$sesstat  sstat3
  , v$sesstat  sstat4
  , v$statname statname1
  , v$statname statname2
  , v$statname statname3
  , v$statname statname4
WHERE
      p.addr (+)            = s.paddr
  AND s.sid                 = sstat1.sid
  AND s.sid                 = sstat2.sid
  AND s.sid                 = sstat3.sid
  AND s.sid                 = sstat4.sid
  AND statname1.statistic#  = sstat1.statistic#
  AND statname2.statistic#  = sstat2.statistic#
  AND statname3.statistic#  = sstat3.statistic#
  AND statname4.statistic#  = sstat4.statistic#
  AND statname1.name        = 'session pga memory'
  AND statname2.name        = 'session pga memory max'
  AND statname3.name        = 'session uga memory'
  AND statname4.name        = 'session uga memory max'
ORDER BY session_pga_memory DESC;

Voir aussi