Sess users

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Script SQL*Plus de diagnostic (Sessions)
Voir aussi Sess user sessions · Sess user stats · Sess query sql

Sess users est le rapport de base pour lister l'ensemble des sessions actuellement connectées à l'instance : SID, numéro de série, statut, utilisateur Oracle et système d'exploitation, PID du process serveur, terminal, machine cliente et programme utilisé. Compatible RAC (jointure sur gv$session/gv$process/gv$instance, avec rupture par instance).

Point d'entrée naturel de la famille de scripts de diagnostic session : pour une synthèse chiffrée, voir Sess user sessions ; pour les statistiques de consommation par session, voir Sess user stats ; pour retrouver le SQL exécuté par une session précise, voir Sess query sql ; pour l'état des transactions en cours, voir Sess current user transactions et Sess uncommited transactions.

Script

SET TERMOUT OFF
COLUMN current_instance NEW_VALUE current_instance NOPRINT
SELECT rpad(instance_name, 17) current_instance FROM v$instance;
SET TERMOUT ON

PROMPT
PROMPT +------------------------------------------------------------------------+
PROMPT | Report   : User Sessions (All)                                         |
PROMPT | Instance : &current_instance                                           |
PROMPT +------------------------------------------------------------------------+

SET LINESIZE 180
SET PAGESIZE 50000
CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES

COLUMN instance_name    FORMAT a8       HEADING 'Instance'
COLUMN sid               FORMAT 999999   HEADING 'SID'
COLUMN serial_id         FORMAT 99999999 HEADING 'Serial ID'
COLUMN session_status    FORMAT a9       HEADING 'Status'
COLUMN oracle_username   FORMAT a18      HEADING 'Oracle User'
COLUMN os_username       FORMAT a18      HEADING 'O/S User'
COLUMN os_pid            FORMAT a8       HEADING 'O/S PID'
COLUMN session_terminal  FORMAT a10      HEADING 'Terminal' TRUNC
COLUMN session_machine   FORMAT a30      HEADING 'Machine'  TRUNC
COLUMN session_program   FORMAT a40      HEADING 'Session Program' TRUNC

BREAK ON instance_name SKIP PAGE

SELECT
    i.instance_name instance_name
  , s.sid           sid
  , s.serial#       serial_id
  , s.status        session_status
  , s.username      oracle_username
  , s.osuser        os_username
  , p.spid          os_pid
  , s.terminal      session_terminal
  , s.machine       session_machine
  , s.program       session_program
FROM
             gv$session  s
  INNER JOIN gv$process  p ON (s.paddr = p.addr AND s.inst_id = p.inst_id)
  INNER JOIN gv$instance i ON (p.inst_id = i.inst_id)
ORDER BY
    i.instance_name, s.sid
/

Voir aussi