Sess users by cursors
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic |
| Voir aussi | Sess users by CPU · Sess users by io · Sess users by memory · Sess users by transactions |
Sess users by cursors liste les sessions connectées triées par nombre de curseurs
actuellement ouverts, avec le pourcentage correspondant par rapport à la limite
open_cursors — utile pour repérer une application qui « fuit » des curseurs
(ouverts et jamais fermés) avant qu'elle ne heurte ORA-01000: maximum open cursors
exceeded.
Même famille de scripts que Sess users by CPU (détail du schéma de requête sur cette
page) ; seule la statistique opened cursors current change ici.
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 a18 HEADING 'Utilisateur Oracle'
COLUMN os_username FORMAT a18 HEADING 'Utilisateur OS'
COLUMN os_pid FORMAT a8 HEADING 'PID OS'
COLUMN session_machine FORMAT a30 TRUNC HEADING 'Machine'
COLUMN session_program FORMAT a40 TRUNC HEADING 'Programme'
COLUMN open_cursors FORMAT 99,999 HEADING 'Curseurs ouverts'
COLUMN open_pct FORMAT 999 HEADING 'Ouvert %'
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
, sstat.value open_cursors
, ROUND((sstat.value/u.value)*100) open_pct
FROM
v$process p
, v$session s
, v$sesstat sstat
, v$statname statname
, (SELECT name, value FROM v$parameter) u
WHERE
p.addr (+) = s.paddr
AND s.sid = sstat.sid
AND statname.statistic# = sstat.statistic#
AND statname.name = 'opened cursors current'
AND u.name = 'open_cursors'
ORDER BY open_cursors DESC;
(à vérifier) : la sous-requête sur v$parameter retourne le paramètre
open_cursors de la session qui exécute le script, pas nécessairement celui
de chaque session listée — rare en pratique, mais possible si open_cursors a été
modifié via ALTER SESSION sur une session particulière. À traiter le pourcentage
comme un ordre de grandeur plutôt qu'une valeur garantie exacte pour chaque ligne.
Voir aussi
- Sess users by CPU — même famille, tri par CPU consommé
- Sess users by io — tri par I/O logiques
- Sess users by memory — tri par mémoire PGA/UGA
- Sess users by transactions — tri par nombre de transactions validées