Sess users by CPU
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic |
| Voir aussi | Sess users active · Sess users by cursors · Sess users by io · Sess users by memory · Sess users by transactions |
Sess users by CPU liste les sessions actuellement connectées à l'instance, triées par temps CPU consommé, pour repérer en un coup d'œil les sessions les plus gourmandes en processeur.
Ce script fait partie d'une famille de scripts de diagnostic session partageant le même
schéma de requête — jointure entre v$process, v$session,
v$sesstat et v$statname — seules la statistique ciblée et la
colonne de tri changent : voir aussi Sess users by cursors (curseurs ouverts),
Sess users by io (I/O logiques), Sess users by memory (mémoire PGA/UGA) et
Sess users by transactions (transactions validées).
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 cpu_value FORMAT 999,999,999,999 HEADING 'CPU (centièmes de sec.)'
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 cpu_value
FROM
v$process p
, v$session s
, v$sesstat sstat
, v$statname statname
WHERE
p.addr (+) = s.paddr
AND s.sid = sstat.sid
AND statname.statistic# = sstat.statistic#
AND statname.name = 'CPU used by this session'
ORDER BY cpu_value DESC;
La valeur de CPU retournée est cumulée depuis l'ouverture de la session (en centièmes de seconde), pas une consommation instantanée. Pour repérer une session qui consomme du CPU en ce moment, il faut soit rejouer le script à quelques secondes d'intervalle et comparer le delta, soit se tourner vers un outil temps réel comme Top ou Ps côté OS.
Voir aussi
- Sess users active — sessions actives, sans tri par ressource
- Sess users by cursors — tri par nombre de curseurs ouverts
- 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