Mts dispatcher utilization
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic |
| Voir aussi | Mts dispatcher status · Mts shared server utilization · Mts queue information |
MTS (Multi-Threaded Server, renommé Shared Server à partir d'Oracle 9i) répartit les
connexions clients sur un pool de processus dispatcher. Ce script calcule le pourcentage de
temps où chaque dispatcher est occupé (busy) plutôt qu'en attente (idle) — un indicateur
direct de saturation du pool : un taux durablement élevé (au-delà de ~50 %) signale qu'il faut
augmenter le nombre de dispatchers (DISPATCHERS).
Script
-- % d'occupation de chaque dispatcher MTS/Shared Server, toutes instances.
SET LINESIZE 180
SET PAGESIZE 50000
SET VERIFY OFF
COLUMN instance_name FORMAT a10 HEADING 'Instance'
COLUMN dispatcher_name FORMAT a16 HEADING 'Dispatcher'
COLUMN pct_busy FORMAT 999.99 HEADING '% Occupé'
SELECT
i.instance_name instance_name
, d.name dispatcher_name
, ROUND(d.busy / NULLIF(d.busy + d.idle, 0) * 100, 2) pct_busy
FROM
gv$instance i
, gv$dispatcher d
WHERE
i.inst_id = d.inst_id
ORDER BY
i.instance_name, d.name
/
Le NULLIF(d.busy + d.idle, 0) évite une erreur de division par zéro sur un
dispatcher qui vient tout juste de démarrer (aucun temps busy ni idle encore cumulé) : la ligne
remonte alors avec un pourcentage à NULL plutôt que de faire échouer la requête.
Voir aussi
- Mts dispatcher status — état détaillé de chaque dispatcher
- Mts shared server utilization — même mesure côté processus shared server
- Mts queue information — temps d'attente moyen dans les files