Sess query sql
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Type | Script SQL*Plus de diagnostic (Sessions) |
| Voir aussi | Sess users · Sess user sessions |
Sess query sql liste d'abord toutes les sessions connectées, puis demande
interactivement un SID et affiche le texte SQL associé au curseur actuellement
pointé par cette session (v$sqlarea via sql_address) — pratique
pour identifier en une commande ce qu'exécute une session repérée comme bloquante ou
consommatrice de ressources.
Limite : la jointure sur sql_address/sql_hash_value est
l'approche historique (pré-9i). Depuis Oracle 9i, v$session.sql_id pointe
directement vers v$sql.sql_id, une jointure plus simple et plus fiable —
conservée ici uniquement pour compatibilité avec l'original du script.
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 : SQL Query Search Interface |
PROMPT | Instance : ¤t_instance |
PROMPT +------------------------------------------------------------------------+
SET LINESIZE 180
SET PAGESIZE 50000
CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES
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_program FORMAT a40 HEADING 'Session Program' TRUNC
PROMPT
PROMPT +------------------------------------------------------------------------+
PROMPT | Listing all User Sessions |
PROMPT +------------------------------------------------------------------------+
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.program session_program
FROM
v$process p
, v$session s
WHERE
p.addr(+) = s.paddr
ORDER BY
sid
/
-- Sélectionner un SID dans la liste ci-dessus :
ACCEPT ora_sid CHAR PROMPT 'Enter Oracle SID: '
COLUMN sql_text FORMAT a80
SELECT
a.sql_text
FROM
v$sqlarea a
, v$session s
WHERE
a.address = s.sql_address
AND s.sid = &&ora_sid
/
Voir aussi
- Sess users — inventaire complet des sessions connectées
- Sess user sessions — synthèse chiffrée par utilisateur